diff options
author | Jonas Smedegaard <dr@jones.dk> | 2016-12-21 21:25:09 +0100 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2016-12-21 21:25:09 +0100 |
commit | f820d86aadb7a5473bcc0a0a3669732ab0182555 (patch) | |
tree | a6a673c444ea3df75fe0a5d53e905030c2f617ce /louloulibs/network/resolver.cpp | |
parent | eda4b75b1cff83336e87da90efca9fd6b4ced2c7 (diff) | |
parent | 9634cdaba2e5d2343fcbc1f07264d55609640273 (diff) | |
download | biboumi-f820d86aadb7a5473bcc0a0a3669732ab0182555.tar.gz biboumi-f820d86aadb7a5473bcc0a0a3669732ab0182555.tar.bz2 biboumi-f820d86aadb7a5473bcc0a0a3669732ab0182555.tar.xz biboumi-f820d86aadb7a5473bcc0a0a3669732ab0182555.zip |
New upstream version 4.0upstream/4.0
Diffstat (limited to 'louloulibs/network/resolver.cpp')
-rw-r--r-- | louloulibs/network/resolver.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/louloulibs/network/resolver.cpp b/louloulibs/network/resolver.cpp index 9d6de23..2987aaa 100644 --- a/louloulibs/network/resolver.cpp +++ b/louloulibs/network/resolver.cpp @@ -2,6 +2,7 @@ #include <network/resolver.hpp> #include <string.h> #include <arpa/inet.h> +#include <cstdlib> using namespace std::string_literals; @@ -116,12 +117,13 @@ void Resolver::fill_ares_addrinfo4(const struct hostent* hostent) current->ai_protocol = 0; current->ai_addrlen = sizeof(struct sockaddr_in); - struct sockaddr_in* addr = new struct sockaddr_in; - addr->sin_family = hostent->h_addrtype; - addr->sin_port = htons(strtoul(this->port.data(), nullptr, 10)); - addr->sin_addr.s_addr = (*address)->s_addr; + struct sockaddr_in* ai_addr = new struct sockaddr_in; + + ai_addr->sin_family = hostent->h_addrtype; + ai_addr->sin_port = htons(std::strtoul(this->port.data(), nullptr, 10)); + ai_addr->sin_addr.s_addr = (*address)->s_addr; - current->ai_addr = reinterpret_cast<struct sockaddr*>(addr); + current->ai_addr = reinterpret_cast<struct sockaddr*>(ai_addr); current->ai_next = nullptr; current->ai_canonname = nullptr; @@ -147,14 +149,14 @@ void Resolver::fill_ares_addrinfo6(const struct hostent* hostent) current->ai_protocol = 0; current->ai_addrlen = sizeof(struct sockaddr_in6); - struct sockaddr_in6* addr = new struct sockaddr_in6; - addr->sin6_family = hostent->h_addrtype; - addr->sin6_port = htons(strtoul(this->port.data(), nullptr, 10)); - ::memcpy(addr->sin6_addr.s6_addr, (*address)->s6_addr, 16); - addr->sin6_flowinfo = 0; - addr->sin6_scope_id = 0; + struct sockaddr_in6* ai_addr = new struct sockaddr_in6; + ai_addr->sin6_family = hostent->h_addrtype; + ai_addr->sin6_port = htons(std::strtoul(this->port.data(), nullptr, 10)); + ::memcpy(ai_addr->sin6_addr.s6_addr, (*address)->s6_addr, sizeof(ai_addr->sin6_addr.s6_addr)); + ai_addr->sin6_flowinfo = 0; + ai_addr->sin6_scope_id = 0; - current->ai_addr = reinterpret_cast<struct sockaddr*>(addr); + current->ai_addr = reinterpret_cast<struct sockaddr*>(ai_addr); current->ai_canonname = nullptr; current->ai_next = prev; |