summaryrefslogtreecommitdiff
path: root/src/AsyncNameResolver.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2014-09-13 00:07:21 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2014-09-13 00:07:21 +0900
commit2807258279d8ddbef01ca1c20a87c14aa084620c (patch)
treee0baa98d1b2051898a4dbde0820ed81e6438fec4 /src/AsyncNameResolver.cc
parentbee7a8317c602a37066a7b3391b5134f31e3a5ff (diff)
Use std::make_shared and make_unique where possible, part 1
Diffstat (limited to 'src/AsyncNameResolver.cc')
-rw-r--r--src/AsyncNameResolver.cc15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/AsyncNameResolver.cc b/src/AsyncNameResolver.cc
index 6dab3c11..31b27aa8 100644
--- a/src/AsyncNameResolver.cc
+++ b/src/AsyncNameResolver.cc
@@ -150,23 +150,18 @@ ares_addr_node* parseAsyncDNSServers(const std::string& serversOpt)
ares_addr_node root;
root.next = nullptr;
ares_addr_node* tail = &root;
- ares_addr_node* node = nullptr;
for (const auto& s: servers) {
- if(node == nullptr) {
- node = new ares_addr_node();
- }
+ auto node = make_unique<ares_addr_node>();
+
size_t len = net::getBinAddr(&node->addr, s.c_str());
if(len != 0) {
node->next = nullptr;
node->family = (len == 4 ? AF_INET : AF_INET6);
- tail->next = node;
- tail = node;
- node = nullptr;
+ tail->next = node.release();
+ tail = tail->next;
}
}
- if(node) {
- delete node;
- }
+
return root.next;
}