Permalink
Browse files

src: inline HostentToAddresses()

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: #17860
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
  • Loading branch information...
bnoordhuis authored and maclover7 committed Dec 25, 2017
1 parent a0cc20e commit f89ee0634a13bdb3f552385a76decdca6b13bdcf
Showing with 9 additions and 24 deletions.
  1. +9 −24 src/cares_wrap.cc
View
@@ -367,26 +367,6 @@ void ares_sockstate_cb(void* data,
}
Local<Array> HostentToAddresses(Environment* env,
struct hostent* host,
Local<Array> append_to = Local<Array>()) {
EscapableHandleScope scope(env->isolate());
auto context = env->context();
bool append = !append_to.IsEmpty();
Local<Array> 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<String> address = OneByteString(env->isolate(), ip);
addresses->Set(context, i + offset, address).FromJust();
}
return append ? addresses : scope.Escape(addresses);
}
Local<Array> HostentToNames(Environment* env,
struct hostent* host,
Local<Array> append_to = Local<Array>()) {
@@ -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);

0 comments on commit f89ee06

Please sign in to comment.