gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r31941 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r31941 - gnunet/src/util
Date: Fri, 17 Jan 2014 05:12:54 +0100

Author: LRN
Date: 2014-01-17 05:12:54 +0100 (Fri, 17 Jan 2014)
New Revision: 31941

Modified:
   gnunet/src/util/gnunet-service-resolver.c
Log:
More W32 resolver workarounds

Modified: gnunet/src/util/gnunet-service-resolver.c
===================================================================
--- gnunet/src/util/gnunet-service-resolver.c   2014-01-17 04:12:51 UTC (rev 
31940)
+++ gnunet/src/util/gnunet-service-resolver.c   2014-01-17 04:12:54 UTC (rev 
31941)
@@ -274,6 +274,22 @@
   struct addrinfo *result;
   struct addrinfo *pos;
 
+#ifdef WINDOWS
+  /* Due to a bug, getaddrinfo will not return a mix of different families */
+  if (AF_UNSPEC == af)
+  {
+    int ret1;
+    int ret2;
+    ret1 = getaddrinfo_resolve (tc, hostname, AF_INET);
+    ret2 = getaddrinfo_resolve (tc, hostname, AF_INET6);
+    if ((ret1 == GNUNET_OK) || (ret2 == GNUNET_OK))
+      return GNUNET_OK;
+    if ((ret1 == GNUNET_SYSERR) || (ret2 == GNUNET_SYSERR))
+      return GNUNET_SYSERR;
+    return GNUNET_NO;
+  }
+#endif
+
   memset (&hints, 0, sizeof (struct addrinfo));
   hints.ai_family = af;
   hints.ai_socktype = SOCK_STREAM;      /* go for TCP */
@@ -333,6 +349,11 @@
   int ret1;
   int ret2;
 
+#ifdef WINDOWS
+  /* gethostbyname2() in plibc is a compat dummy that calls gethostbyname(). */
+  return GNUNET_NO;
+#endif
+
   if (af == AF_UNSPEC)
   {
     ret1 = gethostbyname2_resolve (tc, hostname, AF_INET);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]