diff options
Diffstat (limited to 'resolv/nss_dns')
-rw-r--r-- | resolv/nss_dns/dns-host.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c index 6ddf11cb53..8d9d517542 100644 --- a/resolv/nss_dns/dns-host.c +++ b/resolv/nss_dns/dns-host.c @@ -164,84 +164,6 @@ _nss_dns_gethostbyname2_r (const char *name, int af, struct hostent *result, if (strchr (name, '.') == NULL && (cp = __hostalias (name)) != NULL) name = cp; - /* - * disallow names consisting only of digits/dots, unless - * they end in a dot. - */ - if (isdigit (name[0])) - for (cp = name;; ++cp) - { - if (*cp == '\0') - { - char *bp; - - if (*--cp == '.') - break; - /* - * All-numeric, no dot at the end. Fake up a hostent - * as if we'd actually done a lookup. - */ - if (inet_pton (af, name, host_data->host_addr) <= 0) - { - *h_errnop = HOST_NOT_FOUND; - return NSS_STATUS_NOTFOUND; - } - - bp = __stpncpy (host_data->linebuffer, name, linebuflen); - host_data->linebuffer[linebuflen - 1] = '\0'; - linebuflen -= bp - host_data->linebuffer; - - result->h_name = host_data->linebuffer; - result->h_aliases = host_data->aliases; - host_data->aliases[0] = NULL; - host_data->h_addr_ptrs[0] = (char *) host_data->host_addr; - host_data->h_addr_ptrs[1] = NULL; - result->h_addr_list = host_data->h_addr_ptrs; - - if (_res.options & RES_USE_INET6) - map_v4v6_hostent (result, &bp, &linebuflen); - *h_errnop = NETDB_SUCCESS; - return NSS_STATUS_SUCCESS; - } - if (!isdigit (*cp) && *cp != '.') - break; - } - if (isxdigit (name[0]) || name[0] == ':') - for (cp = name;; ++cp) - { - if (*cp == '\0') - { - char *bp; - - if (*--cp == '.') - break; - /* - * All-IPv6-legal, no dot at the end. Fake up a hostent - * as if we'd actually done a lookup. - */ - if (inet_pton (af, name, host_data->host_addr) <= 0) - { - *h_errnop = HOST_NOT_FOUND; - return NSS_STATUS_NOTFOUND; - } - - bp = __stpncpy (host_data->linebuffer, name, linebuflen); - host_data->linebuffer[linebuflen - 1] = '\0'; - linebuflen -= bp - host_data->linebuffer; - - result->h_name = host_data->linebuffer; - result->h_aliases = host_data->aliases; - host_data->aliases[0] = NULL; - host_data->h_addr_ptrs[0] = (char *) host_data->host_addr; - host_data->h_addr_ptrs[1] = NULL; - result->h_addr_list = host_data->h_addr_ptrs; - *h_errnop = NETDB_SUCCESS; - return NSS_STATUS_SUCCESS; - } - if (!isxdigit (*cp) && *cp != ':' && *cp != '.') - break; - } - n = res_search (name, C_IN, type, host_buffer.buf, sizeof (host_buffer)); if (n < 0) return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND; |