[asterisk-commits] elguero: branch 11 r376836 - in /branches/11: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Nov 29 15:57:06 CST 2012


Author: elguero
Date: Thu Nov 29 15:57:00 2012
New Revision: 376836

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=376836
Log:
Improve Code Readability And Fix Setting natdetected Flag

For 1.8, 10, 11 and trunk we are are improving the code readability.

For 11 and trunk, auto nat detection was added.  The natdetected flag was being
set to 1 when the host address in the VIA header did not specifiy a port.  This
patch fixes this by setting the port on the temporary sock address used to
SIP_STANDARD_PORT in order for the sock address comparison to work properly.

(closes issue ASTERISK-20724)
Reported by: Michael L. Young
Patches:
    asterisk-20724-set-port-v2.diff uploaded by Michael L. Young (license 5026)

Review: https://reviewboard.asterisk.org/r/2206/
........

Merged revisions 376834 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 376835 from http://svn.asterisk.org/svn/asterisk/branches/10

Modified:
    branches/11/   (props changed)
    branches/11/channels/chan_sip.c

Propchange: branches/11/
------------------------------------------------------------------------------
Binary property 'branch-10-merged' - no diff available.

Modified: branches/11/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/11/channels/chan_sip.c?view=diff&rev=376836&r1=376835&r2=376836
==============================================================================
--- branches/11/channels/chan_sip.c (original)
+++ branches/11/channels/chan_sip.c Thu Nov 29 15:57:00 2012
@@ -17800,10 +17800,13 @@
 
 		if (ast_sockaddr_resolve_first(&tmp, c, 0)) {
 			ast_log(LOG_WARNING, "Could not resolve socket address for '%s'\n", c);
-		}
-		port = ast_sockaddr_port(&tmp);
-		ast_sockaddr_set_port(&p->sa,
-				      port != 0 ? port : STANDARD_SIP_PORT);
+			port = STANDARD_SIP_PORT;
+		} else if (!(port = ast_sockaddr_port(&tmp)) {
+			port = STANDARD_SIP_PORT;
+			ast_sockaddr_set_port(&tmp, port);
+		}
+
+		ast_sockaddr_set_port(&p->sa, port);
 
 		/* Check and see if the requesting UA is likely to be behind a NAT. If they are, set the
 		 * natdetected flag so that later, peers with nat=auto_* can use the value. Also




More information about the asterisk-commits mailing list