* lib/getaddrinfo.c (getaddrinfo): Check AI_NUMERICHOST flag, too.
* lib/netdb.in.h: Define AI_NUMERICHOST if not defined yet.
---
 lib/getaddrinfo.c | 4 +++-
 lib/netdb.in.h    | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/getaddrinfo.c b/lib/getaddrinfo.c
index 542addc670..d9c1ec6abc 100644
--- a/lib/getaddrinfo.c
+++ b/lib/getaddrinfo.c
@@ -213,7 +213,8 @@ getaddrinfo (const char *restrict nodename,
     return getaddrinfo_ptr (nodename, servname, hints, res);
 # endif
 
-  if (hints && (hints->ai_flags & ~(AI_CANONNAME|AI_PASSIVE|AI_NUMERICSERV)))
+  if (hints && (hints->ai_flags &
+                ~(AI_CANONNAME|AI_PASSIVE|AI_NUMERICSERV|AI_NUMERICHOST)))
     /* FIXME: Support more flags. */
     return EAI_BADFLAGS;
 
@@ -261,6 +262,7 @@ getaddrinfo (const char *restrict nodename,
         port = se->s_port;
     }
 
+  /* FIXME: Assume gethostbyname can accept a numeric address string. */
   /* FIXME: Use gethostbyname_r if available. */
   he = gethostbyname (nodename);
   if (!he || he->h_addr_list[0] == NULL)
diff --git a/lib/netdb.in.h b/lib/netdb.in.h
index e8ba8f0978..9cad2d937a 100644
--- a/lib/netdb.in.h
+++ b/lib/netdb.in.h
@@ -103,7 +103,7 @@ struct addrinfo
 #  define AI_NUMERICSERV        0x0400  /* Don't use name resolution.  */
 # endif
 
-# if 0
+# ifndef AI_NUMERICHOST
 #  define AI_NUMERICHOST        0x0004  /* Don't use name resolution.  */
 # endif
 
-- 
2.42.0


Reply via email to