summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerge script <automerge@asterisk.org>2012-11-29 22:20:25 +0000
committerAutomerge script <automerge@asterisk.org>2012-11-29 22:20:25 +0000
commitf052e88b49743306dea12b14efe8973286a0f758 (patch)
tree900ea6c08ff209ae3aee4b55d953ffcf867768f2
parentddde765c590bb817f01c65cba500db1720fc657f (diff)
Merged revisions 376837 via svnmerge from
file:///srv/subversion/repos/asterisk/trunk ................ r376837 | elguero | 2012-11-29 15:58:41 -0600 (Thu, 29 Nov 2012) | 25 lines 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 ........ Merged revisions 376836 from http://svn.asterisk.org/svn/asterisk/branches/11 ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@376844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_sip.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 67c2a1c7c..0dc6069c8 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -17896,10 +17896,13 @@ 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;
+ ast_sockaddr_set_port(&tmp, 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);
/* 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