You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by se...@apache.org on 2008/03/03 16:38:55 UTC

svn commit: r633134 - /webservices/axis2/trunk/c/util/src/url.c

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: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org