Simplify setup of IPv6 DNS resolvers

This commit is contained in:
Tim Wojtulewicz 2023-01-14 16:34:37 -07:00
parent 34f7c95a51
commit 53f2364a86

View file

@ -642,7 +642,6 @@ void DNS_Mgr::InitSource()
servers.next = NULL; servers.next = NULL;
auto dns_resolver_addr = IPAddr(dns_resolver); auto dns_resolver_addr = IPAddr(dns_resolver);
struct sockaddr_storage ss = {0};
if ( dns_resolver_addr.GetFamily() == IPv4 ) if ( dns_resolver_addr.GetFamily() == IPv4 )
{ {
@ -651,12 +650,12 @@ void DNS_Mgr::InitSource()
} }
else else
{ {
struct sockaddr_in6* sa = (struct sockaddr_in6*)&ss; struct sockaddr_in6 sa = {0};
sa->sin6_family = AF_INET6; sa.sin6_family = AF_INET6;
dns_resolver_addr.CopyIPv6(&sa->sin6_addr); dns_resolver_addr.CopyIPv6(&sa.sin6_addr);
servers.family = AF_INET6; servers.family = AF_INET6;
memcpy(&(servers.addr.addr6), &sa->sin6_addr, sizeof(ares_in6_addr)); memcpy(&(servers.addr.addr6), &sa.sin6_addr, sizeof(ares_in6_addr));
} }
ares_set_servers(channel, &servers); ares_set_servers(channel, &servers);