mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
update from main archive 960107
Tue Jan 7 09:48:15 1997 Andreas Jaeger <aj@arthur.pfalz.de> * signal/sigempty.c (sigemptyset): Correct typo: Empty set should have all bits zero. Tue Jan 7 23:44:39 1997 Ulrich Drepper <drepper@cygnus.com> * inet/gethstbynm.c: Include additional headers for additional code in nss/digits_dots.c. * inet/gethstbynm_r.c: Likewise. * inet/gethstbynm2.c: Likewise. * inet/gethstbynm2_r.c: Likewise. * nss/digits_dots.c: New file. Handle dotted pair notation for gethstbynm functions. * nss/getXXbyYY.c: Include digits_dots.c to get extra code for handling dotted pair notation. * nss/getXXbyYY_r.c: Likewise. Patches by HJ Lu. * resolv/nss_dns/dns-host.c: Don't handle dotted pair notation. * io/getwd.c: Optimized a bit. * signal/signal.h: Always declare __sysv_signal. * sysdeps/generic/setenv.c: Add some portability code. * sysdeps/unix/sysv/fcntlbits.h: Update copyright. * sysdeps/unix/sysv/linux/fcntlbits.h: Add definitions from kernel to avoid using kernel headers. * sysdeps/unix/sysv/linux/alpha/fcntlbits.h: New file. Alpha specific version. * sysdeps/unix/sysv/linux/syscalls.list: Add sys_mknod. Don't mark sigreturn as EXTRA. * sysdeps/unix/sysv/linux/ustat.c: Declare __syscall_ustat. * sysdeps/unix/sysv/linux/alpha/ustat.c: New file. Alpha version. Tue Jan 7 09:48:15 1997 Andreas Jaeger <aj@arthur.pfalz.de> * io/fts.c (fts_alloc): Add const to second parameter of function. * io/Makefile: Change CFLAGS-fts.c and define CFLAGS-ftw.c to prevent warnings. * signal/sigfillset.c: Include <string.h> for memset declaration. Tue Jan 7 11:14:32 1997 Miles Bader <miles@gnu.ai.mit.edu> * sysdeps/generic/setenv.c: Fix portability problems. Tue Jan 7 02:10:17 1997 Ulrich Drepper <drepper@cygnus.com> * posix/getopt.c (_getopt_internal): Don't reset __getopt_initialized after the last option was seen. Mon Jan 6 15:30:21 1997 Ulrich Drepper <drepper@cygnus.com> * elf/elf.h (DT_EXTRANUM): Set to 3 since 0x7ffffffd is used.
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user