[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r31941 - gnunet/src/util,
gnunet <=