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:
@ -1,5 +1,13 @@
|
|||||||
2008-12-02 Ulrich Drepper <drepper@redhat.com>
|
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
|
* resolv/res_init.c (__res_vinit): Fill in IPv4 name server
|
||||||
information at the correct index.
|
information at the correct index.
|
||||||
|
|
||||||
|
@ -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>
|
2008-11-25 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
* sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
|
* sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
@ -52,6 +52,8 @@
|
|||||||
#define FUTEX_LOCK_PI 6
|
#define FUTEX_LOCK_PI 6
|
||||||
#define FUTEX_UNLOCK_PI 7
|
#define FUTEX_UNLOCK_PI 7
|
||||||
#define FUTEX_TRYLOCK_PI 8
|
#define FUTEX_TRYLOCK_PI 8
|
||||||
|
#define FUTEX_WAIT_BITSET 9
|
||||||
|
#define FUTEX_WAKE_BITSET 10
|
||||||
#define FUTEX_PRIVATE_FLAG 128
|
#define FUTEX_PRIVATE_FLAG 128
|
||||||
|
|
||||||
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
||||||
@ -86,7 +88,7 @@
|
|||||||
asm ("andl %%gs:%P1, %0" : "+r" (__fl) \
|
asm ("andl %%gs:%P1, %0" : "+r" (__fl) \
|
||||||
: "i" (offsetof (struct pthread, header.private_futex))); \
|
: "i" (offsetof (struct pthread, header.private_futex))); \
|
||||||
__fl | (fl); }))
|
__fl | (fl); }))
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __ASSEMBLER__
|
#ifndef __ASSEMBLER__
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
|
Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
|
||||||
|
|
||||||
@ -37,6 +37,8 @@
|
|||||||
#define FUTEX_LOCK_PI 6
|
#define FUTEX_LOCK_PI 6
|
||||||
#define FUTEX_UNLOCK_PI 7
|
#define FUTEX_UNLOCK_PI 7
|
||||||
#define FUTEX_TRYLOCK_PI 8
|
#define FUTEX_TRYLOCK_PI 8
|
||||||
|
#define FUTEX_WAIT_BITSET 9
|
||||||
|
#define FUTEX_WAKE_BITSET 10
|
||||||
#define FUTEX_PRIVATE_FLAG 128
|
#define FUTEX_PRIVATE_FLAG 128
|
||||||
|
|
||||||
/* Values for 'private' parameter of locking macros. Yes, the
|
/* Values for 'private' parameter of locking macros. Yes, the
|
||||||
@ -67,7 +69,7 @@
|
|||||||
: (fl)) \
|
: (fl)) \
|
||||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
|
Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
|
||||||
|
|
||||||
@ -38,6 +38,8 @@
|
|||||||
#define FUTEX_LOCK_PI 6
|
#define FUTEX_LOCK_PI 6
|
||||||
#define FUTEX_UNLOCK_PI 7
|
#define FUTEX_UNLOCK_PI 7
|
||||||
#define FUTEX_TRYLOCK_PI 8
|
#define FUTEX_TRYLOCK_PI 8
|
||||||
|
#define FUTEX_WAIT_BITSET 9
|
||||||
|
#define FUTEX_WAKE_BITSET 10
|
||||||
#define FUTEX_PRIVATE_FLAG 128
|
#define FUTEX_PRIVATE_FLAG 128
|
||||||
|
|
||||||
/* Values for 'private' parameter of locking macros. Yes, the
|
/* Values for 'private' parameter of locking macros. Yes, the
|
||||||
@ -67,7 +69,7 @@
|
|||||||
: (fl)) \
|
: (fl)) \
|
||||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define lll_futex_wait(futexp, val, private) \
|
#define lll_futex_wait(futexp, val, private) \
|
||||||
@ -131,8 +133,8 @@
|
|||||||
FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
|
FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
|
||||||
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
#ifdef UP
|
#ifdef UP
|
||||||
# define __lll_acq_instr ""
|
# define __lll_acq_instr ""
|
||||||
# define __lll_rel_instr ""
|
# define __lll_rel_instr ""
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
|
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
|
||||||
|
|
||||||
@ -36,6 +36,8 @@
|
|||||||
#define FUTEX_LOCK_PI 6
|
#define FUTEX_LOCK_PI 6
|
||||||
#define FUTEX_UNLOCK_PI 7
|
#define FUTEX_UNLOCK_PI 7
|
||||||
#define FUTEX_TRYLOCK_PI 8
|
#define FUTEX_TRYLOCK_PI 8
|
||||||
|
#define FUTEX_WAIT_BITSET 9
|
||||||
|
#define FUTEX_WAKE_BITSET 10
|
||||||
#define FUTEX_PRIVATE_FLAG 128
|
#define FUTEX_PRIVATE_FLAG 128
|
||||||
|
|
||||||
/* Values for 'private' parameter of locking macros. Yes, the
|
/* Values for 'private' parameter of locking macros. Yes, the
|
||||||
@ -66,7 +68,7 @@
|
|||||||
: (fl)) \
|
: (fl)) \
|
||||||
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
: ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
|
||||||
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
& THREAD_GETMEM (THREAD_SELF, header.private_futex))))
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define lll_futex_wait(futex, val, private) \
|
#define lll_futex_wait(futex, val, private) \
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
|
||||||
|
|
||||||
@ -52,6 +52,8 @@
|
|||||||
#define FUTEX_LOCK_PI 6
|
#define FUTEX_LOCK_PI 6
|
||||||
#define FUTEX_UNLOCK_PI 7
|
#define FUTEX_UNLOCK_PI 7
|
||||||
#define FUTEX_TRYLOCK_PI 8
|
#define FUTEX_TRYLOCK_PI 8
|
||||||
|
#define FUTEX_WAIT_BITSET 9
|
||||||
|
#define FUTEX_WAKE_BITSET 10
|
||||||
#define FUTEX_PRIVATE_FLAG 128
|
#define FUTEX_PRIVATE_FLAG 128
|
||||||
|
|
||||||
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
|
||||||
@ -87,7 +89,7 @@
|
|||||||
asm ("andl %%fs:%P1, %0" : "+r" (__fl) \
|
asm ("andl %%fs:%P1, %0" : "+r" (__fl) \
|
||||||
: "i" (offsetof (struct pthread, header.private_futex))); \
|
: "i" (offsetof (struct pthread, header.private_futex))); \
|
||||||
__fl | (fl); }))
|
__fl | (fl); }))
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Initializer for lock. */
|
/* Initializer for lock. */
|
||||||
|
@ -198,8 +198,14 @@ _nss_dns_gethostbyname3_r (const char *name, int af, struct hostent *result,
|
|||||||
1024, &host_buffer.ptr, NULL, NULL, NULL);
|
1024, &host_buffer.ptr, NULL, NULL, NULL);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
{
|
{
|
||||||
status = (errno == ECONNREFUSED
|
if (errno == ESRCH)
|
||||||
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
|
{
|
||||||
|
status = NSS_STATUS_TRYAGAIN;
|
||||||
|
h_errno = TRY_AGAIN;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
status = (errno == ECONNREFUSED
|
||||||
|
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
|
||||||
*h_errnop = h_errno;
|
*h_errnop = h_errno;
|
||||||
if (h_errno == TRY_AGAIN)
|
if (h_errno == TRY_AGAIN)
|
||||||
*errnop = EAGAIN;
|
*errnop = EAGAIN;
|
||||||
@ -304,8 +310,14 @@ _nss_dns_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
|
|||||||
&ans2p, &nans2p, &resplen2);
|
&ans2p, &nans2p, &resplen2);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
{
|
{
|
||||||
status = (errno == ECONNREFUSED
|
if (errno == ESRCH)
|
||||||
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
|
{
|
||||||
|
status = NSS_STATUS_TRYAGAIN;
|
||||||
|
h_errno = TRY_AGAIN;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
status = (errno == ECONNREFUSED
|
||||||
|
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
|
||||||
*herrnop = h_errno;
|
*herrnop = h_errno;
|
||||||
if (h_errno == TRY_AGAIN)
|
if (h_errno == TRY_AGAIN)
|
||||||
*errnop = EAGAIN;
|
*errnop = EAGAIN;
|
||||||
|
@ -183,7 +183,7 @@ __res_vinit(res_state statp, int preinit) {
|
|||||||
#endif
|
#endif
|
||||||
statp->nsaddr.sin_family = AF_INET;
|
statp->nsaddr.sin_family = AF_INET;
|
||||||
statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
|
statp->nsaddr.sin_port = htons(NAMESERVER_PORT);
|
||||||
statp->nscount = 1;
|
statp->nscount = 0;
|
||||||
statp->ndots = 1;
|
statp->ndots = 1;
|
||||||
statp->pfcode = 0;
|
statp->pfcode = 0;
|
||||||
statp->_vcsock = -1;
|
statp->_vcsock = -1;
|
||||||
|
@ -733,6 +733,8 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
|||||||
tmpbuflen, 2 * tmpbuflen);
|
tmpbuflen, 2 * tmpbuflen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
no_inet6_data = no_data;
|
||||||
|
|
||||||
if (status == NSS_STATUS_SUCCESS)
|
if (status == NSS_STATUS_SUCCESS)
|
||||||
{
|
{
|
||||||
if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)
|
if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)
|
||||||
|
Reference in New Issue
Block a user