asyn-ares: set hint flags when calling ares_getaddrinfo

The hint flag is ARES_AI_NUMERICSERV, and it will save a call to
getservbyname or getservbyname_r to set it.

Closes #9694
This commit is contained in:
bsergean 2022-10-10 16:24:43 -07:00 committed by Daniel Stenberg
parent 66313cf4b3
commit e71a9b488f
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
2 changed files with 6 additions and 1 deletions

View File

@ -97,4 +97,5 @@ opensignature on github <antonio@piumarossa.it>
Cering on github <gfypm@qq.com>
a1346054 on github <36859588+a1346054@users.noreply.github.com>
zhanghu on xiaomi <zhanghu6@xiaomi.com>
Philip Heiduck <pheiduck@Philips-MBP.lan> <47042125+pheiduck@users.noreply.github.com>
Philip Heiduck <pheiduck@Philips-MBP.lan> <47042125+pheiduck@users.noreply.github.com>
bsergean on github <bsergean@gmail.com>

View File

@ -786,6 +786,10 @@ struct Curl_addrinfo *Curl_resolver_getaddrinfo(struct Curl_easy *data,
hints.ai_family = pf;
hints.ai_socktype = (data->conn->transport == TRNSPRT_TCP)?
SOCK_STREAM : SOCK_DGRAM;
/* Since the service is a numerical one, set the hint flags
* accordingly to save a call to getservbyname in inside C-Ares
*/
hints.ai_flags = ARES_AI_NUMERICSERV;
msnprintf(service, sizeof(service), "%d", port);
res->num_pending = 1;
ares_getaddrinfo((ares_channel)data->state.async.resolver, hostname,