mirror of https://github.com/aria2/aria2
Use sockaddr_union in parseAsyncDNSServers().
parent
138130497f
commit
c01c34f24a
|
@ -120,12 +120,12 @@ ares_addr_node* parseAsyncDNSServers(const std::string& serversOpt)
|
||||||
node->next = 0;
|
node->next = 0;
|
||||||
node->family = res->ai_family;
|
node->family = res->ai_family;
|
||||||
if(node->family == AF_INET) {
|
if(node->family == AF_INET) {
|
||||||
struct sockaddr_in* in =
|
sockaddr_in* in =
|
||||||
reinterpret_cast<struct sockaddr_in*>(res->ai_addr);
|
&reinterpret_cast<sockaddr_union*>(res->ai_addr)->in;
|
||||||
memcpy(&node->addr.addr4, &(in->sin_addr), 4);
|
memcpy(&node->addr.addr4, &(in->sin_addr), 4);
|
||||||
} else {
|
} else {
|
||||||
struct sockaddr_in6* in =
|
sockaddr_in6* in =
|
||||||
reinterpret_cast<struct sockaddr_in6*>(res->ai_addr);
|
&reinterpret_cast<sockaddr_union*>(res->ai_addr)->in6;
|
||||||
memcpy(&node->addr.addr6, &(in->sin6_addr), 16);
|
memcpy(&node->addr.addr6, &(in->sin6_addr), 16);
|
||||||
}
|
}
|
||||||
tail->next = node;
|
tail->next = node;
|
||||||
|
|
Loading…
Reference in New Issue