Author: senaka Date: Mon Mar 3 07:38:54 2008 New Revision: 633134 URL: http://svn.apache.org/viewvc?rev=633134&view=rev Log: Fixing JIRA Issues, AXIS2C-1029, AXIS2C-1031, AXIS2C-1033
Modified: webservices/axis2/trunk/c/util/src/url.c Modified: webservices/axis2/trunk/c/util/src/url.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/url.c?rev=633134&r1=633133&r2=633134&view=diff ============================================================================== --- webservices/axis2/trunk/c/util/src/url.c (original) +++ webservices/axis2/trunk/c/util/src/url.c Mon Mar 3 07:38:54 2008 @@ -247,16 +247,41 @@ axis2_char_t *external_form = NULL; axis2_ssize_t len = 0; axis2_char_t port_str[8]; + axis2_bool_t print_port = AXIS2_FALSE; AXIS2_ENV_CHECK(env, NULL); AXIS2_PARAM_CHECK(env->error, url, NULL); - sprintf(port_str, "%d", url->port); - len = - axutil_strlen(url->protocol) + axutil_strlen(url->server) + - axutil_strlen(url->path) + strlen(port_str) + 7; + if (!url->protocol) + { + return NULL; + } + + if (url->port != 0 && + url->port != axutil_uri_port_of_scheme(url->protocol)) + { + print_port = AXIS2_TRUE; + sprintf(port_str, "%d", url->port); + } + + len = axutil_strlen(url->protocol) + 6; + if (url->server) + { + len += axutil_strlen(url->server); + } + if (url->path) + { + len += axutil_strlen(url->path); + } + if (print_port) + { + len += axutil_strlen(port_str) + 1; + } external_form = (axis2_char_t *) AXIS2_MALLOC(env->allocator, len); - sprintf(external_form, "%s://%s:%s%s", url->protocol, url->server, port_str, - url->path); + sprintf(external_form, "%s://%s%s%s%s", url->protocol, + (url->server) ? url->server : "", + (print_port) ? ":" : "", + (print_port) ? port_str : "", + (url->path) ? url->path : ""); return external_form; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]