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);