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/05 17:46:45 UTC

svn commit: r633930 - in /webservices/axis2/trunk/c/util: include/axutil_uri.h src/uri.c

Author: senaka
Date: Wed Mar  5 08:46:45 2008
New Revision: 633930

URL: http://svn.apache.org/viewvc?rev=633930&view=rev
Log:
Special provisions for IPv6 hostnames, according to RFC3986

Modified:
    webservices/axis2/trunk/c/util/include/axutil_uri.h
    webservices/axis2/trunk/c/util/src/uri.c

Modified: webservices/axis2/trunk/c/util/include/axutil_uri.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_uri.h?rev=633930&r1=633929&r2=633930&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/axutil_uri.h (original)
+++ webservices/axis2/trunk/c/util/include/axutil_uri.h Wed Mar  5 08:46:45 2008
@@ -227,6 +227,8 @@
 
     /**
      * @return returns actual reference, not a cloned copy.
+     * For IPv6 addresses, the IPv6 Address will be returned
+     * rather than the IP-literal as defined in RFC3986.
      */
     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
     axutil_uri_get_host(

Modified: webservices/axis2/trunk/c/util/src/uri.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/uri.c?rev=633930&r1=633929&r2=633930&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/uri.c (original)
+++ webservices/axis2/trunk/c/util/src/uri.c Wed Mar  5 08:46:45 2008
@@ -570,11 +570,15 @@
             axutil_uri_free(uri, env);
             return NULL;
         }
-        /* literal IPv6 address */
+        /* literal IPv6 address
+         * Special allowances has been made according to RFC3986 for
+         * IPv6 addresses beginning with "::"
+         */
         s = rsb + 1;
         if ((*(hostinfo + 1) >= '0' && *(hostinfo + 1) <= '9') ||
              (*(hostinfo + 1) >= 'a' && *(hostinfo + 1) <= 'z') ||
-             (*(hostinfo + 1) >= 'A' && *(hostinfo + 1) <= 'Z'))
+             (*(hostinfo + 1) >= 'A' && *(hostinfo + 1) <= 'Z') ||
+             (*(hostinfo + 1) == ':' && *(hostinfo + 2) == ':'))
         {
             ++hostinfo;
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org