From f6539449c5332b9fb79a7dff844ef5b006445f56 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 4 Oct 2017 11:03:11 +0200 Subject: [PATCH] nameserv: set hints for getaddrinfo() according to -4/-6 option Avoid sending unnecessary DNS requests when the -4/-6 option is specified. --- nameserv.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/nameserv.c b/nameserv.c index b5899e7..1cb9608 100644 --- a/nameserv.c +++ b/nameserv.c @@ -53,7 +53,19 @@ DNS_Name2IPAddress(const char *name, IPAddr *ip_addrs, int max_addrs) max_addrs = MIN(max_addrs, DNS_MAX_ADDRESSES); memset(&hints, 0, sizeof (hints)); - hints.ai_family = AF_UNSPEC; + + switch (address_family) { + case IPADDR_INET4: + hints.ai_family = AF_INET; + break; +#ifdef FEAT_IPV6 + case IPADDR_INET6: + hints.ai_family = AF_INET6; + break; +#endif + default: + hints.ai_family = AF_UNSPEC; + } hints.ai_socktype = SOCK_STREAM; result = getaddrinfo(name, NULL, &hints, &res);