diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2014-09-13 00:07:21 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2014-09-13 00:07:21 +0900 |
| commit | 2807258279d8ddbef01ca1c20a87c14aa084620c (patch) | |
| tree | e0baa98d1b2051898a4dbde0820ed81e6438fec4 /src/AsyncNameResolver.cc | |
| parent | bee7a8317c602a37066a7b3391b5134f31e3a5ff (diff) | |
Use std::make_shared and make_unique where possible, part 1
Diffstat (limited to 'src/AsyncNameResolver.cc')
| -rw-r--r-- | src/AsyncNameResolver.cc | 15 |
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; } |
