Blame SOURCES/elinks-0.11.0-getaddrinfo.patch

5a1f25
--- elinks-0.11.0/src/network/dns.c.getaddrinfo	2006-01-01 17:39:36.000000000 +0100
5a1f25
+++ elinks-0.11.0/src/network/dns.c	2006-01-10 09:30:56.000000000 +0100
5a1f25
@@ -157,9 +157,21 @@ do_real_lookup(unsigned char *name, struct sockaddr_storage **addrs, int *addrno
5a1f25
 	 * But we duplicate the code terribly here :|. */
5a1f25
 	/* hostent = getipnodebyname(name, AF_INET6, AI_ALL | AI_ADDRCONFIG, NULL); */
5a1f25
 	memset(&hint, 0, sizeof(hint));
5a1f25
+	hint.ai_flags = AI_ADDRCONFIG;
5a1f25
 	hint.ai_family = AF_UNSPEC;
5a1f25
 	hint.ai_socktype = SOCK_STREAM;
5a1f25
-	if (getaddrinfo(name, NULL, &hint, &ai) != 0) return DNS_ERROR;
5a1f25
+	switch (getaddrinfo(name, NULL, &hint, &ai))
5a1f25
+	{
5a1f25
+	case 0:
5a1f25
+		break;
5a1f25
+	case EAI_BADFLAGS:
5a1f25
+		hint.ai_flags = 0;
5a1f25
+		if (getaddrinfo(name, NULL, &hint, &ai) == 0)
5a1f25
+			break;
5a1f25
+		/* fall through */
5a1f25
+	default:
5a1f25
+		return DNS_ERROR;
5a1f25
+	}
5a1f25
 
5a1f25
 #else
5a1f25
 	/* Seems there are problems on Mac, so we first need to try