Use sockaddr_union in parseAsyncDNSServers().

pull/2/head
Tatsuhiro Tsujikawa 2011-10-19 23:29:23 +09:00
parent 138130497f
commit c01c34f24a
1 changed files with 4 additions and 4 deletions

View File

@ -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;