gio/gresolver.c: Fix build on Windows
authorChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 19 Feb 2014 05:57:18 +0000 (13:57 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 20 Feb 2014 00:36:54 +0000 (08:36 +0800)
Windows does not come with inet_aton(), and this check on IPv4 addresses
is actually not needed on Windows as the getaddrinfo() implementation on
Windows already rejects non-standard and non-real IPv4 numbers-and-dots
addresses.

https://bugzilla.gnome.org/show_bug.cgi?id=724609

gio/gresolver.c

index 730ac1b32c9ab269eaa3ca14a8eddca08d66f417..78d079a5531ad0e9ec9501e1524ef9207ef25d71 100644 (file)
@@ -308,8 +308,10 @@ handle_ip_address (const char  *hostname,
   /* Reject non-standard IPv4 numbers-and-dots addresses.
    * g_inet_address_new_from_string() will have accepted any "real" IP
    * address, so if inet_aton() succeeds, then it's an address we want
-   * to reject.
+   * to reject.  This check is not necessary for Windows, as getaddrinfo()
+   * already rejects such IPv4 addresses on Windows.
    */
+#ifndef G_OS_WIN32
   if (inet_aton (hostname, &ip4addr))
     {
       g_set_error (error, G_RESOLVER_ERROR, G_RESOLVER_ERROR_NOT_FOUND,
@@ -317,6 +319,7 @@ handle_ip_address (const char  *hostname,
                    hostname, gai_strerror (EAI_NONAME));
       return TRUE;
     }
+#endif
 
   return FALSE;
 }