39 lines
1.3 KiB
Diff
39 lines
1.3 KiB
Diff
From 9cb53851be2d90c804e6f31da26a11c51329f33c Mon Sep 17 00:00:00 2001
|
|
From: Chun-wei Fan <fanchunwei@src.gnome.org>
|
|
Date: Wed, 19 Feb 2014 05:57:18 +0000
|
|
Subject: 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
|
|
---
|
|
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;
|
|
}
|
|
--
|
|
cgit v0.9.2
|