You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
891 B
25 lines
891 B
--- elinks-0.11.0/src/network/dns.c.getaddrinfo 2006-01-01 17:39:36.000000000 +0100 |
|
+++ elinks-0.11.0/src/network/dns.c 2006-01-10 09:30:56.000000000 +0100 |
|
@@ -157,9 +157,21 @@ do_real_lookup(unsigned char *name, struct sockaddr_storage **addrs, int *addrno |
|
* But we duplicate the code terribly here :|. */ |
|
/* hostent = getipnodebyname(name, AF_INET6, AI_ALL | AI_ADDRCONFIG, NULL); */ |
|
memset(&hint, 0, sizeof(hint)); |
|
+ hint.ai_flags = AI_ADDRCONFIG; |
|
hint.ai_family = AF_UNSPEC; |
|
hint.ai_socktype = SOCK_STREAM; |
|
- if (getaddrinfo(name, NULL, &hint, &ai) != 0) return DNS_ERROR; |
|
+ switch (getaddrinfo(name, NULL, &hint, &ai)) |
|
+ { |
|
+ case 0: |
|
+ break; |
|
+ case EAI_BADFLAGS: |
|
+ hint.ai_flags = 0; |
|
+ if (getaddrinfo(name, NULL, &hint, &ai) == 0) |
|
+ break; |
|
+ /* fall through */ |
|
+ default: |
|
+ return DNS_ERROR; |
|
+ } |
|
|
|
#else |
|
/* Seems there are problems on Mac, so we first need to try
|
|
|