This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Aloha,
The following change causes the return value of gethostbyname_r to
disagree with the glibc documentation:
2002-08-25 Ulrich Drepper <drepper@redhat.com>
* nss/getXXbyYY_r.c (REENTRANT_NAME): Return ENOENT if status is
neither SUCCESS nor TRYAGAIN [PR libc/4259].
===================================================================
RCS file: /cvs/glibc/libc/nss/getXXbyYY_r.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- libc/nss/getXXbyYY_r.c 2002/08/03 06:25:51 1.42
+++ libc/nss/getXXbyYY_r.c 2002/08/26 06:15:30 1.43
@@ -229,7 +229,8 @@
#ifdef POSTPROCESS
POSTPROCESS;
#endif
- return status == NSS_STATUS_SUCCESS ? 0 : errno;
+ return (status == NSS_STATUS_SUCCESS
+ ? 0 : (status == NSS_STATUS_TRYAGAIN ? EAGAIN : ENOENT));
}
According to the documentation:
If the function [gethostbyname_r] failed the return value is an error
number. In addition to the errors defined for `gethostbyname' it
can also be `ERANGE'. In this case the call should be repeated
with a larger buffer.
Currently, gethostbyname_r returns EAGAIN instead of ERANGE and breaks
compatibility w/ glibc-2.2.5. I've attached a slightly modified version of
the example code from the documentation which fails because ERANGE
is not returned (tested on alpha-pc-linux-gnu and i586-pc-linux-gnu).
- glen
Attachment:
gethostname.c
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |