]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Improve Code Readability And Fix Setting natdetected Flag
authorMichael L. Young <elgueromexicano@gmail.com>
Thu, 29 Nov 2012 21:51:50 +0000 (21:51 +0000)
committerMichael L. Young <elgueromexicano@gmail.com>
Thu, 29 Nov 2012 21:51:50 +0000 (21:51 +0000)
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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@376835 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 0ab4c3e7d1de9df01b990f4f63a3e9d8641d67e6..ceccff8c3e7c191af3d44438a174c2befdbba8b8 100644 (file)
@@ -16806,10 +16806,12 @@ static void check_via(struct sip_pvt *p, struct sip_request *req)
 
                if (ast_sockaddr_resolve_first(&tmp, c, 0)) {
                        ast_log(LOG_WARNING, "Could not resolve socket address for '%s'\n", c);
+                       port = STANDARD_SIP_PORT;
+               } else if (!(port = ast_sockaddr_port(&tmp)) {
+                       port = STANDARD_SIP_PORT;
                }
-               port = ast_sockaddr_port(&tmp);
-               ast_sockaddr_set_port(&p->sa,
-                                     port != 0 ? port : STANDARD_SIP_PORT);
+
+               ast_sockaddr_set_port(&p->sa, port);
 
                if (sip_debug_test_pvt(p)) {
                        ast_verbose("Sending to %s (%s)\n",