summaryrefslogtreecommitdiff
path: root/louloulibs/network/resolver.cpp
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2016-12-21 21:25:17 +0100
committerJonas Smedegaard <dr@jones.dk>2016-12-21 21:25:17 +0100
commitdc1ad45aea9a10007a31ae449b1e0fe352a8a6cd (patch)
treeeb233ce97fc828e2edba69a82a1e7314b92771d3 /louloulibs/network/resolver.cpp
parenta077b304b27d21bf635ef4f31a2a0447d3b14d11 (diff)
parentf820d86aadb7a5473bcc0a0a3669732ab0182555 (diff)
downloadbiboumi-dc1ad45aea9a10007a31ae449b1e0fe352a8a6cd.tar.gz
biboumi-dc1ad45aea9a10007a31ae449b1e0fe352a8a6cd.tar.bz2
biboumi-dc1ad45aea9a10007a31ae449b1e0fe352a8a6cd.tar.xz
biboumi-dc1ad45aea9a10007a31ae449b1e0fe352a8a6cd.zip
Merge tag 'upstream/4.0'
Upstream version 4.0 # gpg: Signature made Wed Dec 21 21:25:11 2016 CET # gpg: using RSA key 2C7C3146C1A00121 # gpg: Good signature from "Jonas Smedegaard <dr@jones.dk>" # gpg: aka "Jonas Smedegaard <jonas@homebase.dk>" # gpg: aka "Jonas Smedegaard <js@debian.org>" # gpg: aka "[jpeg image of size 4165]"
Diffstat (limited to 'louloulibs/network/resolver.cpp')
-rw-r--r--louloulibs/network/resolver.cpp26
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;