X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/1b411143e517b2f7baec66e8ffbffb3ded1dd04c..25082d1ef6712a15c52a1dacb36b7f0642c23ac8:/lib/getaddrinfo.c diff --git a/lib/getaddrinfo.c b/lib/getaddrinfo.c index 0261f788..96d7a2ba 100644 --- a/lib/getaddrinfo.c +++ b/lib/getaddrinfo.c @@ -295,9 +295,8 @@ int getaddrinfo(const char *node, res); } else if (hints.ai_flags & AI_NUMERICHOST) { struct in_addr ip; - if (!inet_aton(node, &ip)) { + if (inet_pton(AF_INET, node, &ip) <= 0) return EAI_FAIL; - } return getaddr_info_single_addr(service, ntohl(ip.s_addr), &hints, @@ -492,13 +491,10 @@ int getnameinfo(const struct sockaddr *sa, socklen_t salen, return EAI_FAIL; } - /* We don't support those. */ - if ((node && !(flags & NI_NUMERICHOST)) - || (service && !(flags & NI_NUMERICSERV))) - return EAI_FAIL; - if (node) { - return gethostnameinfo(sa, node, nodelen, flags); + int ret = gethostnameinfo(sa, node, nodelen, flags); + if (ret) + return ret; } if (service) {