From: Mark Michelson Date: Fri, 29 Aug 2008 15:26:52 +0000 (+0000) Subject: Fix SIP's parsing so that if a port is specified X-Git-Tag: 1.4.22-rc3~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e0342deafef472d0b9cba8718d19313ad6c3577;p=thirdparty%2Fasterisk.git Fix SIP's parsing so that if a port is specified in a string to Dial(), it is not ignored. (closes issue #13355) Reported by: acunningham Patches: 13355v2.patch uploaded by putnopvut (license 60) Tested by: acunningham git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@140417 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index e873a162f1..a99428774c 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2903,14 +2903,18 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer) dialog->sa.sin_family = AF_INET; dialog->timer_t1 = 500; /* Default SIP retransmission timer T1 (RFC 3261) */ p = find_peer(peer, NULL, 1, 0); + + portno = port ? atoi(port) : STANDARD_SIP_PORT; if (p) { int res = create_addr_from_peer(dialog, p); + if (portno) { + dialog->sa.sin_port = dialog->recv.sin_port = htons(portno); + } ASTOBJ_UNREF(p, sip_destroy_peer); return res; } hostn = peer; - portno = port ? atoi(port) : STANDARD_SIP_PORT; if (srvlookup) { char service[MAXHOSTNAMELEN]; int tportno;