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].
+ * nss/nss_files/files-XXX.c (internal_getent): Don't set *errnop
+ to ENOENT if no entry is found.
+ * nis/nss_compat/compat-grp.c: Don't set errno in case of lookup
+ failure.
+ * nis/nss_compat/compat-initgroups.c: Likewise.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/compat-spwd.c: Likewise.
+ * nis/nss_nis/nis-alias.c: Likewise.
+ * nis/nss_nis/nis-ethers.c: Likewise.
+ * nis/nss_nis/nis-grp.c: Likewise.
+ * nis/nss_nis/nis-hosts.c: Likewise.
+ * nis/nss_nis/nis-initgroups.c: Likewise.
+ * nis/nss_nis/nis-netgrp.c: Likewise.
+ * nis/nss_nis/nis-network.c: Likewise.
+ * nis/nss_nis/nis-proto.c: Likewise.
+ * nis/nss_nis/nis-publickey.c: Likewise.
+ * nis/nss_nis/nis-pwd.c: Likewise.
+ * nis/nss_nis/nis-rpc.c: Likewise.
+ * nis/nss_nis/nis-service.c: Likewise.
+ * nis/nss_nis/nis-spwd.c: Likewise.
+ * resolv/nss_dns/dns-host.c: Likewise.
+ * resolv/nss_dns/dns-network.c: Likewise.
+ * nis/nss_nisplus/nisplus-alias.c: Save errno around NIS calls.
+ * nis/nss_nisplus/nisplus-ethers.c: Likewise.
+ * nis/nss_nisplus/nisplus-grp.c: Likewise.
+ * nis/nss_nisplus/nisplus-hosts.c: Likewise.
+ * nis/nss_nisplus/nisplus-network.c: Likewise.
+ * nis/nss_nisplus/nisplus-proto.c: Likewise.
+ * nis/nss_nisplus/nisplus-pwd.c: Likewise.
+ * nis/nss_nisplus/nisplus-rpc.c: Likewise.
+ * nis/nss_nisplus/nisplus-service.c: Likewise.
+ * nis/nss_nisplus/nisplus-spwd.c: Likewise.
+ * hesiod/nss_hesiod/hesiod-pwd.c (lookup): Preserve errno value.
+ * hesiod/nss_hesiod/hesiod-proto.c (lookup): Likewise.
+ * hesiod/nss_hesiod/hesiod-grp.c (lookup): Likewise.
+ * hesiod/nss_hesiod/hesiod-service.c (lookup): Likewise.
+
* sysdeps/unix/sysv/linux/i386/sigaction.c: Avoid warnings by
declaring __restore and __restore_rt as hidden (if possible).
-/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
char **list;
int parse_res;
size_t len;
+ int olderr = errno;
context = _nss_hesiod_init ();
if (context == NULL)
list = hesiod_resolve (context, name, type);
if (list == NULL)
{
+ int err = errno;
hesiod_end (context);
- return errno == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
+ __set_errno (olderr);
+ return err == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
}
linebuflen = buffer + buflen - data->linebuffer;
parse_res = _nss_files_parse_grent (buffer, grp, data, buflen, errnop);
if (parse_res < 1)
- return parse_res == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return parse_res == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+ }
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
char **list, **item;
int parse_res;
int found;
+ int olderr = errno;
context = _nss_hesiod_init ();
if (context == NULL)
list = hesiod_resolve (context, name, type);
if (list == NULL)
{
+ int err = errno;
hesiod_end (context);
- return errno == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
+ __set_errno (olderr);
+ return err == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
}
linebuflen = buffer + buflen - data->linebuffer;
hesiod_free_list (context, list);
hesiod_end (context);
- return found ? NSS_STATUS_SUCCESS : NSS_STATUS_NOTFOUND;
+ if (found == 0)
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
+
+ return NSS_STATUS_SUCCESS;
}
enum nss_status
-/* Copyright (C) 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
char **list;
int parse_res;
size_t len;
+ int olderr = errno;
context = _nss_hesiod_init ();
if (context == NULL)
list = hesiod_resolve (context, name, type);
if (list == NULL)
{
+ int err = errno;
hesiod_end (context);
- return errno == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
+ __set_errno (olderr);
+ return err == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
}
linebuflen = buffer + buflen - data->linebuffer;
parse_res = _nss_files_parse_pwent (buffer, pwd, data, buflen, errnop);
if (parse_res < 1)
- return parse_res == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return parse_res == -1 ? NSS_STATUS_TRYAGAIN : NSS_STATUS_NOTFOUND;
+ }
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
char **list, **item;
int parse_res;
int found;
+ int olderr = errno;
context = _nss_hesiod_init ();
if (context == NULL)
list = hesiod_resolve (context, name, type);
if (list == NULL)
{
+ int err = errno;
hesiod_end (context);
- return errno == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
+ __set_errno (olderr);
+ return err == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
}
linebuflen = buffer + buflen - data->linebuffer;
hesiod_free_list (context, list);
hesiod_end (context);
- return found ? NSS_STATUS_SUCCESS : NSS_STATUS_NOTFOUND;
+ if (found == 0)
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
+
+ return NSS_STATUS_SUCCESS;
}
enum nss_status
+2002-08-26 Ulrich Drepper <drepper@redhat.com>
+
+ * Examples/ex10.c (thread): tv_nsec == 1000000000 is already
+ overflow [PR libc/4244].
+
2002-08-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/timer_routines.c (thread_func): Make the
/* Tests for pthread_mutex_timedlock function.
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Kaz Kylheku <kaz@ashi.footprints.net>, 2000.
The GNU C Library is free software; you can redistribute it and/or
ts.tv_nsec += TIMEOUT_NS;
- if (ts.tv_nsec > 1000000000L) {
+ if (ts.tv_nsec >= 1000000000L) {
ts.tv_sec++;
ts.tv_nsec -= 1000000000L;
}
-/* Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
{
ent->nis = 0;
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
!= YPERR_SUCCESS)
{
ent->nis = 0;
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (yp_match (domain, "group.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (buflen < ((size_t) outvallen + 1))
{
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
- }
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
if (result->gr_name[0] == '-' && result->gr_name[1] != '\0')
{
if (strcmp (&result->gr_name[1], name) == 0)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
continue;
}
enum nss_status status;
if (name[0] == '-' || name[0] == '+')
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
__libc_lock_lock (lock);
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
snprintf (buf, sizeof (buf), "%lu", (unsigned long int) gid);
if (yp_match (domain, "group.bygid", buf, strlen (buf),
&outval, &outvallen) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (buflen < ((size_t) outvallen + 1))
{
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
status = getgrgid_plusgroup (gid, result, buffer, buflen, errnop);
if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
{
ent->nis = 0;
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (ent->start == NULL || status != NSS_STATUS_SUCCESS)
{
ent->nis = 0;
- *errnop = ENOENT;
return NSS_STATUS_UNAVAIL;
}
}
{
if (ent->next == NULL)
{
- *errnop = ENOENT;
ent->nis = 0;
return NSS_STATUS_NOTFOUND;
}
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (yp_match (domain, "group.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (buflen < ((size_t) outvallen + 1))
{
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
-/* Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
if ((res = malloc (namelen + restlen + (endp - encrypted) + 2)) == NULL)
{
free (result2);
- *errnop = ENOMEM;
return NSS_STATUS_TRYAGAIN;
}
{
ent->nis = 0;
give_pwd_free (&ent->pwd);
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
if (in_blacklist (result->pw_name, strlen (result->pw_name), ent))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else /* Use NIS */
{
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (yp_match (domain, "passwd.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (insert_passwd_adjunct (&outval, &outvallen, domain, errnop)
!= NSS_STATUS_SUCCESS)
return NSS_STATUS_TRYAGAIN;
if (in_blacklist (result->pw_name, strlen (result->pw_name), ent))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
if (parse_res > 0)
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
if (status == NSS_STATUS_RETURN)
continue;
else
- {
- if (status == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- return status;
- }
+ return status;
}
/* -user */
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
{
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
if (p == NULL || buffer[buflen - 1] != '\xff')
&& result->pw_name[1] != '@')
{
if (strcmp (&result->pw_name[1], name) == 0)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
continue;
}
enum nss_status status;
if (name[0] == '-' || name[0] == '+')
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
__libc_lock_lock (lock);
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
sprintf (buf, "%lu", (unsigned long int) uid);
if (yp_match (domain, "passwd.byuid", buf, strlen (buf),
&outval, &outvallen)
!= YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (insert_passwd_adjunct (&outval, &outvallen, domain, errnop)
!= NSS_STATUS_SUCCESS)
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
status = getpwuid_plususer (uid, result, buffer, buflen, errnop);
if (status == NSS_STATUS_SUCCESS &&
innetgr (buf, NULL, result->pw_name, NULL))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
continue;
}
}
else
if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
status = getpwuid_plususer (uid, result, buffer, buflen, errnop);
if (status == NSS_STATUS_SUCCESS &&
innetgr (buf, NULL, result->pw_name, NULL))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
continue;
}
}
else
if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
break;
else
if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
-/* Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
{
ent->nis = 0;
give_spwd_free (&ent->pwd);
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
int outvallen;
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (yp_match (domain, "shadow.byname", name, strlen (name),
&outval, &outvallen) != YPERR_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (buflen < ((size_t) outvallen + 1))
{
free (outval);
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
buffer[buflen - 1] = '\xff';
p = fgets (buffer, buflen, ent->stream);
if (p == NULL && feof (ent->stream))
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
if (p == NULL || buffer[buflen - 1] != '\xff')
{
fsetpos (ent->stream, &pos);
{
if (user != NULL && user[0] != '-')
if (strcmp (user, name) == 0)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
__internal_endnetgrent (&netgrdata);
continue;
&& result->sp_namp[1] != '@')
{
if (strcmp (&result->sp_namp[1], name) == 0)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
continue;
}
status = getspnam_plususer (name, result, buffer, buflen,
errnop);
if (status == NSS_STATUS_RETURN)
- {
- /* We couldn't parse the entry */
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ /* We couldn't parse the entry */
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
status = getspnam_plususer (name, result, buffer, buflen, errnop);
if (status == NSS_STATUS_RETURN) /* We couldn't parse the entry */
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
enum nss_status status;
if (name[0] == '-' || name[0] == '+')
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
if (ni == NULL)
{
-/* Copyright (C) 1996, 1997, 1998, 1999i, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
&result, &len));
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
-/* Copyright (C) 1996-2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
char *p;
if (next == NULL)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
p = strncpy (buffer, next->val, buflen);
while (isspace (*p))
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2000,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
*h_errnop = TRY_AGAIN;
break;
case NSS_STATUS_NOTFOUND:
- *errnop = ENOENT;
*h_errnop = HOST_NOT_FOUND;
break;
default:
else
{
*h_errnop = HOST_NOT_FOUND;
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
}
}
*errnop = errno;
}
if (retval == NSS_STATUS_NOTFOUND)
- {
- *h_errnop = HOST_NOT_FOUND;
- *errnop = ENOENT;
- }
+ *h_errnop = HOST_NOT_FOUND;
+
return retval;
}
-/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
do
{
if (intern->next == NULL)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
p = strncpy (buffer, intern->next->val, buflen);
while (isspace (*p))
++p;
-/* Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
enum nss_status status;
if (cursor == NULL)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
__libc_lock_lock (lock);
-/* Copyright (C) 1996-2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
{
*herrnop = NETDB_INTERNAL;
*errnop = errno;
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
{
*errnop = errno;
*herrnop = NETDB_INTERNAL;
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
continue;
}
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
{
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
-/* Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,2000,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
char *p;
if (next == NULL)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
p = strncpy (buffer, next->val, buflen);
while (isspace (*p))
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
gidlen = 0;
/* After strtoul() ep should point to the first invalid character.
- This is the marker "," we search for the next value. */
+ This is the marker "," we search for the next value. */
while (ep != NULL && *ep == ',')
{
ep++;
break; /* the successful case */
case YPERR_DOMAIN:
case YPERR_KEY:
- *errnop = ENOENT;
return NSS_STATUS_NOTFOUND;
case YPERR_MAP:
default:
return err;
}
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
-/* Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
do
{
if (data->next == NULL)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
p = strncpy (buffer, data->next->val, buflen);
while (isspace (*p))
++p;
internal_nis_endrpcent (&data);
if (!found && status == NSS_STATUS_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
-/* Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
do
{
if (data->next == NULL)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
+
p = strncpy (buffer, data->next->val, buflen);
while (isspace (*p))
++p;
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
internal_nis_endservent (&data);
if (!found && status == NSS_STATUS_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
else
return NSS_STATUS_SUCCESS;
internal_nis_endservent (&data);
if (!found && status == NSS_STATUS_SUCCESS)
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return status;
}
-/* Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (retval != NSS_STATUS_SUCCESS)
{
- if (retval == NSS_STATUS_NOTFOUND)
- *errnop = ENOENT;
- else if (retval == NSS_STATUS_TRYAGAIN)
+ if (retval == NSS_STATUS_TRYAGAIN)
*errnop = errno;
return retval;
}
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
- {
- *errnop = ENOENT;
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 30 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[name=%s],%s", name, tablename_val);
buffer, buflen, errnop);
if (parse_res < 1)
{
+ __set_errno (olderr);
+
if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
-/* Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 40 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[name=%s],%s", name, tablename_val);
buflen, errnop);
if (parse_res < 1)
{
+ __set_errno (olderr);
+
if (parse_res == -1)
{
nis_freeresult (result);
-/* Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 24 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[name=%s],%s", name, tablename_val);
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
int parse_res;
nis_result *result;
char buf[36 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[gid=%lu],%s", (unsigned long int) gid, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
nis_freeresult (result);
if (parse_res < 1)
{
+ __set_errno (olderr);
+
if (parse_res == -1)
{
*errnop = ERANGE;
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 255 + tablename_len];
+ int olderr = errno;
/* Search at first in the alias list, and use the correct name
for the next search */
*errnop = errno;
*herrnop = NETDB_INTERNAL;
}
+ else
+ __set_errno (olderr);
nis_freeresult (result);
return retval;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
}
nis_result *result;
char buf[255 + tablename_len];
int retval, parse_res;
+ int olderr = errno;
sprintf (buf, "[addr=%s],%s",
inet_ntoa (*(const struct in_addr *) addr), tablename_val);
*errnop = errno;
*herrnop = NETDB_INTERNAL;
}
+ else
+ __set_errno (olderr);
nis_freeresult (result);
return retval;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
}
-/* Copyright (C) 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 255 + tablename_len];
+ int olderr = errno;
/* Search at first in the alias list, and use the correct name
for the next search */
*errnop = errno;
*herrnop = NETDB_INTERNAL;
}
+ else
+ __set_errno (olderr);
nis_freeresult (result);
return retval;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
}
struct in_addr in;
char buf2[256];
int b2len;
+ int olderr = errno;
in = inet_makeaddr (addr, 0);
strcpy (buf2, inet_ntoa (in));
*errnop = errno;
*herrnop = NETDB_INTERNAL;
}
+ else
+ __set_errno (olderr);
nis_freeresult (result);
return retval;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
}
}
-/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 255 + tablename_len];
+ int olderr = errno;
/* Search at first in the alias list, and use the correct name
for the next search */
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
int parse_res;
nis_result *result;
char buf[46 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[number=%d],%s", number, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 24 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[name=%s],%s", name, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
int parse_res;
nis_result *result;
char buf[100 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[uid=%lu],%s", (unsigned long int) uid, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 1998, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 255 + tablename_len];
+ int olderr = errno;
/* Search at first in the alias list, and use the correct name
for the next search */
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
*errnop = ERANGE;
return NSS_STATUS_TRYAGAIN;
}
+
+ __set_errno (olderr);
return NSS_STATUS_NOTFOUND;
}
return NSS_STATUS_SUCCESS;
int parse_res;
nis_result *result;
char buf[100 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[number=%d],%s", number, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 255 + tablename_len];
+ int olderr = errno;
/* Search at first in the alias list, and use the correct name
for the next search */
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
int parse_res;
nis_result *result;
char buf[60 + strlen (protocol) + tablename_len];
+ int olderr = errno;
sprintf (buf, "[port=%d,proto=%s],%s",
number, protocol, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
-/* Copyright (C) 1997, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
{
nis_result *result;
char buf[strlen (name) + 24 + tablename_len];
+ int olderr = errno;
sprintf (buf, "[name=%s],%s", name, tablename_val);
{
enum nss_status status = niserr2nss (result->status);
+ __set_errno (olderr);
+
nis_freeresult (result);
return status;
}
return NSS_STATUS_TRYAGAIN;
}
else
- return NSS_STATUS_NOTFOUND;
+ {
+ __set_errno (olderr);
+ return NSS_STATUS_NOTFOUND;
+ }
}
return NSS_STATUS_SUCCESS;
}
#ifdef POSTPROCESS
POSTPROCESS;
#endif
- return status == NSS_STATUS_SUCCESS ? 0 : errno;
+ return (status == NSS_STATUS_SUCCESS
+ ? 0 : (status == NSS_STATUS_TRYAGAIN ? EAGAIN : ENOENT));
}
/* Common code for file-based databases in nss_files module.
- Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1996,1997,1998,1999,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
if (p == NULL)
{
/* End of file or read error. */
- *errnop = ENOENT;
H_ERRNO_SET (HOST_NOT_FOUND);
return NSS_STATUS_NOTFOUND;
}
int size, type, n;
const char *cp;
int map = 0;
+ int olderr = errno;
if ((_res.options & RES_INIT) == 0 && __res_ninit (&_res) == -1)
return NSS_STATUS_UNAVAIL;
enum nss_status status = (errno == ECONNREFUSED
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND);
*h_errnop = h_errno;
- *errnop = h_errno == TRY_AGAIN ? EAGAIN : ENOENT;
+ if (h_errno == TRY_AGAIN)
+ *errnop = EAGAIN;
+ else
+ __set_errno (olderr);
/* If we are looking for a IPv6 address and mapping is enabled
by having the RES_USE_INET6 bit in _res.options set, we try
char qbuf[MAXDNAME+1], *qp = NULL;
size_t size;
int n, status;
+ int olderr = errno;
if ((_res.options & RES_INIT) == 0 && __res_ninit (&_res) == -1)
return NSS_STATUS_UNAVAIL;
if (n < 0)
{
*h_errnop = h_errno;
- *errnop = errno;
+ __set_errno (olderr);
return errno == ECONNREFUSED ? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
}
if (__builtin_expect (qdcount, 1) != 1)
{
*h_errnop = NO_RECOVERY;
- *errnop = ENOENT;
return NSS_STATUS_UNAVAIL;
}
if (sizeof (struct host_data) + (ancount + 1) * sizeof (char *) >= buflen)
-/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Extended from original form by Ulrich Drepper <drepper@cygnus.com>, 1996.
char qbuf[MAXDNAME];
int cnt, anslen;
u_int32_t net2;
+ int olderr = errno;
/* No net address lookup for IPv6 yet. */
if (type != AF_INET)
if (anslen < 0)
{
/* Nothing found. */
- *errnop = errno;
- return (errno == ECONNREFUSED
- || errno == EPFNOSUPPORT
- || errno == EAFNOSUPPORT)
+ int err = errno;
+ __set_errno (olderr);
+ return (err == ECONNREFUSED
+ || err == EPFNOSUPPORT
+ || err == EAFNOSUPPORT)
? NSS_STATUS_UNAVAIL : NSS_STATUS_NOTFOUND;
}