]> sjero.net Git - wget/commitdiff
[svn] Allow all hex digits in IPv6 IP addresses.
authorhniksic <devnull@localhost>
Sat, 26 Jan 2002 20:43:17 +0000 (12:43 -0800)
committerhniksic <devnull@localhost>
Sat, 26 Jan 2002 20:43:17 +0000 (12:43 -0800)
Published in <sxsofjgvo72.fsf@florida.arsdigita.de>.

src/ChangeLog
src/url.c

index 74a3b84c03482c79d46437b92a00ba6c3b2870e7..1d882c50f5a8263500fda7878e5b7b71898c3ba9 100644 (file)
@@ -1,3 +1,8 @@
+2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+       * url.c (url_parse): Allow all hex digits, not only decimal ones,
+       to form an IP address.
+
 2002-01-26  Hrvoje Niksic  <hniksic@arsdigita.com>
 
        * url.c (urlchr_table): Make square braces reserved, so we can
index 293b362ebfb83f4ee62d2d16628d8b8ed031efd5..b1087378c58a44470e7e89e7367fa59b4cb90516 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -704,20 +704,23 @@ url_parse (const char *url, int *error)
       int invalid = 0;
       ++p;
       while (1)
-       switch (*p++)
-         {
-         case ']':
-           goto out;
-         case '\0':
-           SETERR (error, PE_UNTERMINATED_IPV6_ADDRESS);
-           return NULL;
-         case '0': case '1': case '2': case '3': case '4':
-         case '5': case '6': case '7': case '8': case '9':
-         case ':': case '.':
-           break;
-         default:
-           invalid = 1;
-         }
+       {
+         char c = *p++;
+         switch (c)
+           {
+           case ']':
+             goto out;
+           case '\0':
+             SETERR (error, PE_UNTERMINATED_IPV6_ADDRESS);
+             return NULL;
+           case ':': case '.':
+             break;
+           default:
+             if (ISXDIGIT (c))
+               break;
+             invalid = 1;
+           }
+       }
     out:
       if (invalid)
        {