From 32d758ed32ef1a5e452f4e7e6c1a4f5ceaa1c968 Mon Sep 17 00:00:00 2001 From: "Michael L. Young" <elgueromexicano@gmail.com> Date: Fri, 18 Oct 2013 15:14:36 +0000 Subject: [PATCH] Remove Port Restriction When Checking For NAT When trying to determine if a peer is behind NAT, we should not be using the ports when comparing addresses. This patch removes the port from being checked and just useds the addresses now. (closes issue ASTERISK-22729) Reported by: Michael L. Young Tested by: Michael L. Young Patches: asterisk-remove-using-port-for-nat-check.diff uploaded by Michael L. Young (license 5026) Review: https://reviewboard.asterisk.org/r/2927/ ........ Merged revisions 401182 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 401183 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@401184 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 473619f22f..1417e4f2ec 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -18379,9 +18379,9 @@ static void check_for_nat(const struct ast_sockaddr *addr, struct sip_pvt *p) return; } - if (ast_sockaddr_cmp(addr, &p->recv)) { - char *tmp_str = ast_strdupa(ast_sockaddr_stringify(addr)); - ast_debug(3, "NAT detected for %s / %s\n", tmp_str, ast_sockaddr_stringify(&p->recv)); + if (ast_sockaddr_cmp_addr(addr, &p->recv)) { + char *tmp_str = ast_strdupa(ast_sockaddr_stringify_addr(addr)); + ast_debug(3, "NAT detected for %s / %s\n", tmp_str, ast_sockaddr_stringify_addr(&p->recv)); p->natdetected = 1; if (ast_test_flag(&p->flags[2], SIP_PAGE3_NAT_AUTO_RPORT)) { ast_set_flag(&p->flags[0], SIP_NAT_FORCE_RPORT); -- GitLab