diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index eff4840793..98c0e1c66f 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Wed Feb 11 11:41:31 CST 2009 +Thu Feb 12 15:00:54 CST 2009 diff --git a/libs/sofia-sip/libsofia-sip-ua/url/torture_url.c b/libs/sofia-sip/libsofia-sip-ua/url/torture_url.c index c23f78eef4..4af13fb4f0 100644 --- a/libs/sofia-sip/libsofia-sip-ua/url/torture_url.c +++ b/libs/sofia-sip/libsofia-sip-ua/url/torture_url.c @@ -341,6 +341,9 @@ int test_sip(void) u = url_hdup(home, (url_t*)"SIP:test@127.0.0.1:55"); TEST_1(u); TEST(u->url_type, url_sip); + u = url_hdup(home, (url_t*)"SIP:test@127.0.0.1:"); TEST_1(u); + TEST(u->url_type, url_sip); + TEST_P(url_hdup(home, (url_t*)"sip:test@127.0.0.1::55"), NULL); TEST_P(url_hdup(home, (url_t*)"sip:test@127.0.0.1:55:"), NULL); TEST_P(url_hdup(home, (url_t*)"sip:test@127.0.0.1:sip"), NULL); diff --git a/libs/sofia-sip/libsofia-sip-ua/url/url.c b/libs/sofia-sip/libsofia-sip-ua/url/url.c index 4be736e1e9..f9d31b2ea6 100644 --- a/libs/sofia-sip/libsofia-sip-ua/url/url.c +++ b/libs/sofia-sip/libsofia-sip-ua/url/url.c @@ -713,8 +713,15 @@ int _url_d(url_t *url, char *s) while (*port >= '0' && *port <= '9') port++; - if (port != url->url_port ? port[0] != '\0' - : (port[0] != '*' || port[1] != '\0')) + if (port != url->url_port) { + if (port[0] != '\0') + return -1; + } + else if (port[0] == '\0') + /* empty string */; + else if (port[0] == '*' && port[1] == '\0') + /* wildcard */; + else return -1; } host[n] = 0;