]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix switch_split_user_domain to parse sip:foo.com properly
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 12 Feb 2014 18:11:11 +0000 (23:11 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 12 Feb 2014 18:11:54 +0000 (23:11 +0500)
src/switch_utils.c

index 36ee3a36ca4eb9e7ed82a3c4a5070737f927b524..5f48193967440ca152d7afef7cbe5998f0f57c99 100644 (file)
@@ -3104,19 +3104,29 @@ SWITCH_DECLARE(int) switch_tod_cmp(const char *exp, int val)
 
 SWITCH_DECLARE(int) switch_split_user_domain(char *in, char **user, char **domain)
 {
-       char *p = NULL, *h = NULL, *u = in;
+       char *p = NULL, *h = NULL, *u;
 
        if (!in) {
                return 0;
        }
 
+       if (!strncasecmp(in, "sip", 3)) {
+               in += 3;
+               while(*in == ':' || *in == 's') in++;
+       }
+
+       u = in;
+
        /* First isolate the host part from the user part */
        if ((h = strchr(u, '@'))) {
                *h++ = '\0';
+       } else {
+               u = NULL;
+               h = in;
        }
 
        /* Clean out the user part of its protocol prefix (if any) */
-       if ((p = strchr(u, ':'))) {
+       if (u && (p = strchr(u, ':'))) {
                *p++ = '\0';
                u = p;
        }