+
+ /* First, try to check whether the address is already a numeric
+ address, in which case we don't need to cache it or bother with
+ setting up timeouts. Plus, if memory serves me right, Ultrix's
+ gethostbyname can't handle numeric addresses (!).
+
+ Where getaddrinfo is available, we do it using the AI_NUMERICHOST
+ flag. Without IPv6, we use inet_addr succeeds. */
+
+#ifdef ENABLE_IPV6
+ xzero (hints);
+ hints.ai_family = family;
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_flags = AI_NUMERICHOST;
+ if (flags & LH_PASSIVE)
+ hints.ai_flags = AI_PASSIVE;
+
+ /* no need to call getaddrinfo_with_timeout here, as we're not
+ * relying on the DNS, but we're only doing an address translation
+ * from presentation (ASCII) to network format */
+ err = getaddrinfo (host, NULL, &hints, &res);
+ if (err == 0 && res != NULL)