[glib] gio/gresolver.c: Fix build on Windows



commit 9cb53851be2d90c804e6f31da26a11c51329f33c
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Feb 19 13:57:18 2014 +0800

    gio/gresolver.c: Fix build on Windows
    
    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 |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/gio/gresolver.c b/gio/gresolver.c
index 730ac1b..78d079a 100644
--- a/gio/gresolver.c
+++ b/gio/gresolver.c
@@ -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;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]