Skip to content

Commit

Permalink
src: inline HostentToAddresses()
Browse files Browse the repository at this point in the history
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 MylesBorins committed Jan 9, 2018
1 parent 87b336a commit 98dc554
Showing 1 changed file with 9 additions and 24 deletions.
33 changes: 9 additions & 24 deletions src/cares_wrap.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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>()) {
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 98dc554

Please sign in to comment.