]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Mon, 27 Mar 2006 23:01:43 +0000 (23:01 +0000)
committerAutomerge script <automerge@asterisk.org>
Mon, 27 Mar 2006 23:01:43 +0000 (23:01 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@15374 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 79f6bf49fda8aff1b5a874c961912d68eb2192ae..8e668509d34447a519512d535dbccf72aa7ebfac 100644 (file)
@@ -6606,6 +6606,7 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
        char tmp[256] = "", *uri, *a;
        char tmpf[256], *from;
        struct sip_request *req;
+       char *colon;
        
        req = oreq;
        if (!req)
@@ -6637,20 +6638,24 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
                ast_uri_decode(from);
        }
 
+       /* Skip any options */
+       if ((a = strchr(uri, ';'))) {
+               *a = '\0';
+       }
+
        /* Get the target domain */
        if ((a = strchr(uri, '@'))) {
-               char *colon;
                *a = '\0';
                a++;
-               colon = strchr(a, ':'); /* Remove :port */
-               if (colon)
-                       *colon = '\0';
-               ast_copy_string(p->domain, a, sizeof(p->domain));
-       }
-       /* Skip any options */
-       if ((a = strchr(uri, ';'))) {
-               *a = '\0';
+       } else {        /* No username part */
+               a = uri;
+               uri = "s";      /* Set extension to "s" */
        }
+       colon = strchr(a, ':'); /* Remove :port */
+       if (colon)
+               *colon = '\0';
+
+       ast_copy_string(p->domain, a, sizeof(p->domain));
 
        if (!AST_LIST_EMPTY(&domain_list)) {
                char domain_context[AST_MAX_EXTENSION];