Return EAI_AGAIN for AF_UNSPEC when herrno is TRY_AGAIN (BZ #16849)
getaddrinfo correctly returns EAI_AGAIN for AF_INET and AF_INET6 queries. For AF_UNSPEC however, an older change (a682a1bf553b1efe4dbb03207fece5b719cec482) broke the check and due to that the returned error was EAI_NONAME. This patch fixes the check so that a non-authoritative not-found is returned as EAI_AGAIN to the user instead of EAI_NONAME.
This commit is contained in:
parent
a5d87b3db4
commit
cf26a0cb6a
@ -1,3 +1,9 @@
|
|||||||
|
2014-05-15 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
|
||||||
|
[BZ #16849]
|
||||||
|
* sysdeps/posix/getaddrinfo.c (gaih_inet): Only check for
|
||||||
|
herrno to return EAI_AGAIN.
|
||||||
|
|
||||||
2014-05-14 Roland McGrath <roland@hack.frob.com>
|
2014-05-14 Roland McGrath <roland@hack.frob.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/i386/nptl/c++-types.data: Moved ...
|
* sysdeps/unix/sysv/linux/i386/nptl/c++-types.data: Moved ...
|
||||||
|
4
NEWS
4
NEWS
@ -16,8 +16,8 @@ Version 2.20
|
|||||||
16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706, 16707,
|
16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706, 16707,
|
||||||
16712, 16713, 16714, 16731, 16739, 16740, 16743, 16754, 16758, 16759,
|
16712, 16713, 16714, 16731, 16739, 16740, 16743, 16754, 16758, 16759,
|
||||||
16760, 16770, 16786, 16789, 16791, 16799, 16800, 16815, 16823, 16824,
|
16760, 16770, 16786, 16789, 16791, 16799, 16800, 16815, 16823, 16824,
|
||||||
16831, 16838, 16854, 16876, 16877, 16885, 16888, 16890, 16912, 16916,
|
16831, 16838, 16849, 16854, 16876, 16877, 16885, 16888, 16890, 16912,
|
||||||
16922, 16927, 16928, 16932.
|
16916, 16922, 16927, 16928, 16932.
|
||||||
|
|
||||||
* The minimum Linux kernel version that this version of the GNU C Library
|
* The minimum Linux kernel version that this version of the GNU C Library
|
||||||
can be used with is 2.6.32.
|
can be used with is 2.6.32.
|
||||||
|
@ -867,8 +867,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
|||||||
if (status != NSS_STATUS_TRYAGAIN
|
if (status != NSS_STATUS_TRYAGAIN
|
||||||
|| rc != ERANGE || herrno != NETDB_INTERNAL)
|
|| rc != ERANGE || herrno != NETDB_INTERNAL)
|
||||||
{
|
{
|
||||||
if (status == NSS_STATUS_TRYAGAIN
|
if (herrno == TRY_AGAIN)
|
||||||
&& herrno == TRY_AGAIN)
|
|
||||||
no_data = EAI_AGAIN;
|
no_data = EAI_AGAIN;
|
||||||
else
|
else
|
||||||
no_data = herrno == NO_DATA;
|
no_data = herrno == NO_DATA;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user