Author: mjordan
Date: Sat Nov  8 18:38:41 2014
New Revision: 427616

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=427616
Log:
channels/chan_mgcp: Fix regression which causes gateways to be skipped

In r227276, a while loop was turned into a for loop. Unfortunately, a portion
of the while loop was left in the code such that, when a static gateway is
encountered in the list of MGCP gateways, the next gateway would be skipped.
At best, we would simply flip past a gateway; at worst, this could lead to a
crash.

ASTERISK-24500 #close
Reported by: Xavier Hienne
patches:
  chan_mgcp.patch uploaded by Xavier Hienne (License 6657)
........

Merged revisions 427613 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 427614 from http://svn.asterisk.org/svn/asterisk/branches/12
........

Merged revisions 427615 from http://svn.asterisk.org/svn/asterisk/branches/13

Modified:
    trunk/   (props changed)
    trunk/channels/chan_mgcp.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-13-merged' - no diff available.

Modified: trunk/channels/chan_mgcp.c
URL: 
http://svnview.digium.com/svn/asterisk/trunk/channels/chan_mgcp.c?view=diff&rev=427616&r1=427615&r2=427616
==============================================================================
--- trunk/channels/chan_mgcp.c (original)
+++ trunk/channels/chan_mgcp.c Sat Nov  8 18:38:41 2014
@@ -1835,17 +1835,12 @@
                        /* not dynamic, check if the name matches */
                        } else if (name) {
                                if (strcasecmp(g->name, at)) {
-                                       g = g->next;
                                        continue;
                                }
                        /* not dynamic, no name, check if the addr matches */
                        } else if (!name && sin) {
                                if ((g->addr.sin_addr.s_addr != 
sin->sin_addr.s_addr) ||
                                    (g->addr.sin_port != sin->sin_port)) {
-                                       if(!g->next)
-                                               g = find_realtime_gw(name, at, 
sin);
-                                       else
-                                               g = g->next;
                                        continue;
                                }
                        } else {


-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to