1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00

* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize

ESRCH return value.
	(_nss_dns_gethostbyname4_r): Likewise.
	* resolv/res_init.c (__res_vinit): Initialize nscount to zero.
	* sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use
	gethostbyname4_r, we don't have a separate IPv6 status, so copy
	the no_data variable.
This commit is contained in:
Ulrich Drepper
2008-12-03 07:30:39 +00:00
parent 6f5c31171f
commit da5ac1352d
10 changed files with 58 additions and 17 deletions

View File

@ -1,5 +1,13 @@
2008-12-02 Ulrich Drepper <drepper@redhat.com>
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize
ESRCH return value.
(_nss_dns_gethostbyname4_r): Likewise.
* resolv/res_init.c (__res_vinit): Initialize nscount to zero.
* sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use
gethostbyname4_r, we don't have a separate IPv6 status, so copy
the no_data variable.
* resolv/res_init.c (__res_vinit): Fill in IPv4 name server
information at the correct index.

View File

@ -1,3 +1,12 @@
2008-12-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
and FUTEX_WAKE_BITSET.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2008-11-25 Roland McGrath <roland@redhat.com>
* sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
/* Copyright (C) 2002-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -52,6 +52,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
#define FUTEX_WAIT_BITSET 9
#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
@ -37,6 +37,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
#define FUTEX_WAIT_BITSET 9
#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
@ -38,6 +38,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
#define FUTEX_WAIT_BITSET 9
#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2003, 2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
@ -36,6 +36,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
#define FUTEX_WAIT_BITSET 9
#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
/* Values for 'private' parameter of locking macros. Yes, the

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
/* Copyright (C) 2002-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -52,6 +52,8 @@
#define FUTEX_LOCK_PI 6
#define FUTEX_UNLOCK_PI 7
#define FUTEX_TRYLOCK_PI 8
#define FUTEX_WAIT_BITSET 9
#define FUTEX_WAKE_BITSET 10
#define FUTEX_PRIVATE_FLAG 128
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)

View File

@ -198,6 +198,12 @@ _nss_dns_gethostbyname3_r (const char *name, int af, struct hostent *result,
1024, &host_buffer.ptr, NULL, NULL, NULL);
if (n < 0)
{
if (errno == ESRCH)
{
status = NSS_STATUS_TRYAGAIN;
h_errno = TRY_AGAIN;
}
else
status = (errno == ECONNREFUSED
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
*h_errnop = h_errno;
@ -304,6 +310,12 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
&ans2p, &nans2p, &resplen2);
if (n < 0)
{
if (errno == ESRCH)
{
status = NSS_STATUS_TRYAGAIN;
h_errno = TRY_AGAIN;
}
else
status = (errno == ECONNREFUSED
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
*herrnop = h_errno;

View File

@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit) {
#endif
statp->nsaddr.sin_family = AF_INET;
statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
statp->nscount = 1;
statp->nscount = 0;
statp->ndots = 1;
statp->pfcode = 0;
statp->_vcsock = -1;

View File

@ -733,6 +733,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
tmpbuflen, 2 * tmpbuflen);
}
no_inet6_data = no_data;
if (status == NSS_STATUS_SUCCESS)
{
if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)