Fixed our supplied getnameinfo()'s ability to do a reverse lookup,
[rsync/rsync.git] / lib / getaddrinfo.c
index 838e708..b743287 100644 (file)
@@ -113,7 +113,7 @@ static char *get_canon_name_from_addr(struct in_addr ip,
                                int *perr)
 {
        return canon_name_from_hostent(
-                       gethostbyaddr(&ip, sizeof(ip), AF_INET),
+                       gethostbyaddr((void *)&ip, sizeof ip, AF_INET),
                        perr);
 }
 
@@ -492,13 +492,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) {