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
|