From edf612581fef1a275eb92647328c9a7972f43a70 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Wed, 16 Apr 2003 21:42:08 +0000 Subject: [PATCH] Contribute SIP changes git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@859 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 89b5cf750e..7969034336 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -576,6 +576,8 @@ static int create_addr(struct sip_pvt *r, char *peer) struct hostent *hp; struct sip_peer *p; int found=0; + char *port; + r->sa.sin_family = AF_INET; ast_pthread_mutex_lock(&peerl.lock); p = peerl.peers; @@ -625,10 +627,18 @@ static int create_addr(struct sip_pvt *r, char *peer) } ast_pthread_mutex_unlock(&peerl.lock); if (!p && !found) { + if ((port=strchr(peer, ':'))) { + *port='\0'; + port++; + } hp = gethostbyname(peer); if (hp) { memcpy(&r->sa.sin_addr, hp->h_addr, sizeof(r->sa.sin_addr)); - r->sa.sin_port = htons(DEFAULT_SIP_PORT); + if (port) { + r->sa.sin_port = htons(atoi(port)); + } else { + r->sa.sin_port = htons(DEFAULT_SIP_PORT); + } memcpy(&r->recv, &r->sa, sizeof(r->recv)); return 0; } else {