From: Olle Johansson Date: Wed, 16 May 2007 09:57:22 +0000 (+0000) Subject: Issue #9439 - properly handle username parameters in SIP uri. X-Git-Tag: 1.4.5~176 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=70ad556544a41367da8f0b195e1b442d4e7183f1;p=thirdparty%2Fasterisk.git Issue #9439 - properly handle username parameters in SIP uri. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@64565 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index bc5dd4f8cf..788a16587a 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7745,7 +7745,6 @@ static int set_address_from_contact(struct sip_pvt *pvt) /* Work on a copy */ contact = ast_strdupa(pvt->fullcontact); - /* XXX this code is repeated all over */ /* Make sure it's a SIP URL */ if (strncasecmp(contact, "sip:", 4)) { ast_log(LOG_NOTICE, "'%s' is not a valid SIP contact (missing sip:) trying to use anyway\n", contact); @@ -7754,7 +7753,6 @@ static int set_address_from_contact(struct sip_pvt *pvt) /* Ditch arguments */ /* XXX this code is replicated also shortly below */ - contact = strsep(&contact, ";"); /* trim ; and beyond */ /* Grab host */ host = strchr(contact, '@'); @@ -7771,6 +7769,9 @@ static int set_address_from_contact(struct sip_pvt *pvt) } else port = STANDARD_SIP_PORT; + contact = strsep(&contact, ";"); /* trim ; and beyond in username part */ + host = strsep(&host, ";"); /* trim ; and beyond in host/domain part */ + /* XXX This could block for a long time XXX */ /* We should only do this if it's a name, not an IP */ hp = ast_gethostbyname(host, &ahp);