From 98dc554a2a32d3dda4bbb9662273597e26640e60 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 25 Dec 2017 08:48:33 +0100 Subject: [PATCH] src: inline HostentToAddresses() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With the removal of `GetHostByNameWrap` in the previous commit, there is only one remaining call site. Inlining it there lets us simplify the logic. PR-URL: https://github.com/nodejs/node/pull/17860 Reviewed-By: Colin Ihrig Reviewed-By: Jon Moss Reviewed-By: Tobias Nießen Reviewed-By: James M Snell Reviewed-By: Gibson Fahnestock --- src/cares_wrap.cc | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc index b9ab1b215e0482..de3cb8f89c1ea2 100644 --- a/src/cares_wrap.cc +++ b/src/cares_wrap.cc @@ -367,26 +367,6 @@ void ares_sockstate_cb(void* data, } -Local HostentToAddresses(Environment* env, - struct hostent* host, - Local append_to = Local()) { - EscapableHandleScope scope(env->isolate()); - auto context = env->context(); - bool append = !append_to.IsEmpty(); - Local addresses = append ? append_to : Array::New(env->isolate()); - size_t offset = addresses->Length(); - - char ip[INET6_ADDRSTRLEN]; - for (uint32_t i = 0; host->h_addr_list[i] != nullptr; ++i) { - uv_inet_ntop(host->h_addrtype, host->h_addr_list[i], ip, sizeof(ip)); - Local address = OneByteString(env->isolate(), ip); - addresses->Set(context, i + offset, address).FromJust(); - } - - return append ? addresses : scope.Escape(addresses); -} - - Local HostentToNames(Environment* env, struct hostent* host, Local append_to = Local()) { @@ -843,12 +823,17 @@ int ParseGeneralReply(Environment* env, } else if (*type == ns_t_ptr) { uint32_t offset = ret->Length(); for (uint32_t i = 0; host->h_aliases[i] != nullptr; i++) { - ret->Set(context, - i + offset, - OneByteString(env->isolate(), host->h_aliases[i])).FromJust(); + auto alias = OneByteString(env->isolate(), host->h_aliases[i]); + ret->Set(context, i + offset, alias).FromJust(); } } else { - HostentToAddresses(env, host, ret); + uint32_t offset = ret->Length(); + char ip[INET6_ADDRSTRLEN]; + for (uint32_t i = 0; host->h_addr_list[i] != nullptr; ++i) { + uv_inet_ntop(host->h_addrtype, host->h_addr_list[i], ip, sizeof(ip)); + auto address = OneByteString(env->isolate(), ip); + ret->Set(context, i + offset, address).FromJust(); + } } ares_free_hostent(host);