mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Update.
2004-02-26 Ulrich Drepper <drepper@redhat.com> * nss/getXXbyYY_r.c: Pass result also to the nscd_* function. Don't set *result here. * nscd/nscd_proto.h: Add new argument for pointer to result pointer to all nscd_* functions. * nscd/nscd_getgr_r.c (nscd_getgr_r): Add new parameter. Store result pointer in the address provided by the new parameter if successful. Otherwise store NULL. Return zero if no entry found. (__nscd_getgrnam_r, __nscd_getgrgid_r): Add new parameter and pass it on. * nscd/nscd_gethst_r.c (nscd_gethst_r): Add new parameter. Store result pointer in the address provided by the new parameter if successful. Otherwise store NULL. Return zero if no entry found. (__nscd_gethostbyname_r, __nscd_gethostbyname2_r, __nscd_gethostbyaddr_r): Add new parameter and pass it on. * nscd/nscd_getpw_r.c (nscd_getpw_r): Add new parameter. Store result pointer in the address provided by the new parameter if successful. Otherwise store NULL. Return zero if no entry found. (__nscd_getpwnam_r, __nscd_getpwuid_r): Add new parameter and pass it on.
This commit is contained in:
22
ChangeLog
22
ChangeLog
@ -1,3 +1,25 @@
|
|||||||
|
2004-02-26 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* nss/getXXbyYY_r.c: Pass result also to the nscd_* function. Don't
|
||||||
|
set *result here.
|
||||||
|
* nscd/nscd_proto.h: Add new argument for pointer to result pointer
|
||||||
|
to all nscd_* functions.
|
||||||
|
* nscd/nscd_getgr_r.c (nscd_getgr_r): Add new parameter. Store result
|
||||||
|
pointer in the address provided by the new parameter if successful.
|
||||||
|
Otherwise store NULL. Return zero if no entry found.
|
||||||
|
(__nscd_getgrnam_r, __nscd_getgrgid_r): Add new parameter and pass
|
||||||
|
it on.
|
||||||
|
* nscd/nscd_gethst_r.c (nscd_gethst_r): Add new parameter. Store
|
||||||
|
result pointer in the address provided by the new parameter if
|
||||||
|
successful. Otherwise store NULL. Return zero if no entry found.
|
||||||
|
(__nscd_gethostbyname_r, __nscd_gethostbyname2_r,
|
||||||
|
__nscd_gethostbyaddr_r): Add new parameter and pass it on.
|
||||||
|
* nscd/nscd_getpw_r.c (nscd_getpw_r): Add new parameter. Store result
|
||||||
|
pointer in the address provided by the new parameter if successful.
|
||||||
|
Otherwise store NULL. Return zero if no entry found.
|
||||||
|
(__nscd_getpwnam_r, __nscd_getpwuid_r): Add new parameter and pass
|
||||||
|
it on.
|
||||||
|
|
||||||
2004-02-26 Jakub Jelinek <jakub@redhat.com>
|
2004-02-26 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/clock_settime.c (SYSDEP_SETTIME): Set
|
* sysdeps/unix/sysv/linux/clock_settime.c (SYSDEP_SETTIME): Set
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2004-02-26 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
|
||||||
|
fail if stack address hasn't been set. Just return 0.
|
||||||
|
|
||||||
2004-02-25 Ulrich Drepper <drepper@redhat.com>
|
2004-02-25 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* Makefile (tests-nolibpthread): Add tst-unload. Don't link with
|
* Makefile (tests-nolibpthread): Add tst-unload. Don't link with
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2002 Free Software Foundation, Inc.
|
/* Copyright (C) 2002, 2004 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.
|
||||||
|
|
||||||
@ -32,13 +32,9 @@ __pthread_attr_getstackaddr (attr, stackaddr)
|
|||||||
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
|
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
|
||||||
iattr = (struct pthread_attr *) attr;
|
iattr = (struct pthread_attr *) attr;
|
||||||
|
|
||||||
/* XXX This function has a stupid definition. The standard
|
/* Some code assumes this function to work even if no stack address
|
||||||
specifies no error value but what is if no stack address was set?
|
has been set. Let them figure it our for themselves what the
|
||||||
We return an error anyway. */
|
value means. Simply store the result. */
|
||||||
if ((iattr->flags & ATTR_FLAG_STACKADDR) == 0)
|
|
||||||
return EINVAL;
|
|
||||||
|
|
||||||
/* Store the result. */
|
|
||||||
*stackaddr = iattr->stackaddr;
|
*stackaddr = iattr->stackaddr;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
/* Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004
|
||||||
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1998.
|
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1998.
|
||||||
|
|
||||||
@ -35,42 +36,44 @@ int __nss_not_use_nscd_group;
|
|||||||
|
|
||||||
static int nscd_getgr_r (const char *key, size_t keylen, request_type type,
|
static int nscd_getgr_r (const char *key, size_t keylen, request_type type,
|
||||||
struct group *resultbuf, char *buffer,
|
struct group *resultbuf, char *buffer,
|
||||||
size_t buflen) internal_function;
|
size_t buflen, struct group **result)
|
||||||
|
internal_function;
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_getgrnam_r (const char *name, struct group *resultbuf, char *buffer,
|
__nscd_getgrnam_r (const char *name, struct group *resultbuf, char *buffer,
|
||||||
size_t buflen)
|
size_t buflen, struct group **result)
|
||||||
{
|
{
|
||||||
return nscd_getgr_r (name, strlen (name) + 1, GETGRBYNAME, resultbuf,
|
return nscd_getgr_r (name, strlen (name) + 1, GETGRBYNAME, resultbuf,
|
||||||
buffer, buflen);
|
buffer, buflen, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_getgrgid_r (gid_t gid, struct group *resultbuf, char *buffer,
|
__nscd_getgrgid_r (gid_t gid, struct group *resultbuf, char *buffer,
|
||||||
size_t buflen)
|
size_t buflen, struct group **result)
|
||||||
{
|
{
|
||||||
char buf[12];
|
char buf[12];
|
||||||
size_t n;
|
size_t n;
|
||||||
|
|
||||||
n = __snprintf (buf, sizeof (buf), "%d", gid) + 1;
|
n = __snprintf (buf, sizeof (buf), "%d", gid) + 1;
|
||||||
|
|
||||||
return nscd_getgr_r (buf, n, GETGRBYGID, resultbuf, buffer, buflen);
|
return nscd_getgr_r (buf, n, GETGRBYGID, resultbuf, buffer, buflen, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
internal_function
|
internal_function
|
||||||
nscd_getgr_r (const char *key, size_t keylen, request_type type,
|
nscd_getgr_r (const char *key, size_t keylen, request_type type,
|
||||||
struct group *resultbuf, char *buffer, size_t buflen)
|
struct group *resultbuf, char *buffer, size_t buflen,
|
||||||
|
struct group **result)
|
||||||
{
|
{
|
||||||
int sock = __nscd_open_socket ();
|
int sock = __nscd_open_socket ();
|
||||||
request_header req;
|
request_header req;
|
||||||
gr_response_header gr_resp;
|
gr_response_header gr_resp;
|
||||||
ssize_t nbytes;
|
ssize_t nbytes;
|
||||||
struct iovec vec[2];
|
struct iovec vec[2];
|
||||||
int result = -1;
|
int retval = -1;
|
||||||
|
|
||||||
if (sock == -1)
|
if (sock == -1)
|
||||||
{
|
{
|
||||||
@ -121,7 +124,7 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type,
|
|||||||
{
|
{
|
||||||
no_room:
|
no_room:
|
||||||
__set_errno (ERANGE);
|
__set_errno (ERANGE);
|
||||||
result = ERANGE;
|
retval = ERANGE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
buflen -= total_len;
|
buflen -= total_len;
|
||||||
@ -169,25 +172,28 @@ nscd_getgr_r (const char *key, size_t keylen, request_type type,
|
|||||||
if (__builtin_expect (total_len > buflen, 0))
|
if (__builtin_expect (total_len > buflen, 0))
|
||||||
goto no_room;
|
goto no_room;
|
||||||
|
|
||||||
result = 0;
|
retval = 0;
|
||||||
n = TEMP_FAILURE_RETRY (__read (sock, resultbuf->gr_mem[0],
|
n = TEMP_FAILURE_RETRY (__read (sock, resultbuf->gr_mem[0],
|
||||||
total_len));
|
total_len));
|
||||||
if (__builtin_expect (n != total_len, 0))
|
if (__builtin_expect (n != total_len, 0))
|
||||||
{
|
{
|
||||||
/* The `errno' to some value != ERANGE. */
|
/* The `errno' to some value != ERANGE. */
|
||||||
__set_errno (ENOENT);
|
__set_errno (ENOENT);
|
||||||
result = ENOENT;
|
retval = ENOENT;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
*result = resultbuf;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* The `errno' to some value != ERANGE. */
|
/* The `errno' to some value != ERANGE. */
|
||||||
__set_errno (ENOENT);
|
__set_errno (ENOENT);
|
||||||
result = ENOENT;
|
/* Even though we have not found anything, the result is zero. */
|
||||||
|
retval = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
__close (sock);
|
__close (sock);
|
||||||
|
|
||||||
return result;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998-2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1998-2002, 2003, 2004 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@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
@ -37,39 +37,42 @@ int __nss_not_use_nscd_hosts;
|
|||||||
|
|
||||||
static int nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
static int nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
||||||
struct hostent *resultbuf, char *buffer,
|
struct hostent *resultbuf, char *buffer,
|
||||||
size_t buflen, int *h_errnop) internal_function;
|
size_t buflen, struct hostent **result,
|
||||||
|
int *h_errnop) internal_function;
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_gethostbyname_r (const char *name, struct hostent *resultbuf,
|
__nscd_gethostbyname_r (const char *name, struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen, int *h_errnop)
|
char *buffer, size_t buflen, struct hostent **result,
|
||||||
|
int *h_errnop)
|
||||||
{
|
{
|
||||||
request_type reqtype;
|
request_type reqtype;
|
||||||
|
|
||||||
reqtype = (_res.options & RES_USE_INET6) ? GETHOSTBYNAMEv6 : GETHOSTBYNAME;
|
reqtype = (_res.options & RES_USE_INET6) ? GETHOSTBYNAMEv6 : GETHOSTBYNAME;
|
||||||
|
|
||||||
return nscd_gethst_r (name, strlen (name) + 1, reqtype, resultbuf,
|
return nscd_gethst_r (name, strlen (name) + 1, reqtype, resultbuf,
|
||||||
buffer, buflen, h_errnop);
|
buffer, buflen, result, h_errnop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_gethostbyname2_r (const char *name, int af, struct hostent *resultbuf,
|
__nscd_gethostbyname2_r (const char *name, int af, struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen, int *h_errnop)
|
char *buffer, size_t buflen, struct hostent **result,
|
||||||
|
int *h_errnop)
|
||||||
{
|
{
|
||||||
request_type reqtype;
|
request_type reqtype;
|
||||||
|
|
||||||
reqtype = af == AF_INET6 ? GETHOSTBYNAMEv6 : GETHOSTBYNAME;
|
reqtype = af == AF_INET6 ? GETHOSTBYNAMEv6 : GETHOSTBYNAME;
|
||||||
|
|
||||||
return nscd_gethst_r (name, strlen (name) + 1, reqtype, resultbuf,
|
return nscd_gethst_r (name, strlen (name) + 1, reqtype, resultbuf,
|
||||||
buffer, buflen, h_errnop);
|
buffer, buflen, result, h_errnop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
__nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
||||||
struct hostent *resultbuf, char *buffer, size_t buflen,
|
struct hostent *resultbuf, char *buffer, size_t buflen,
|
||||||
int *h_errnop)
|
struct hostent **result, int *h_errnop)
|
||||||
{
|
{
|
||||||
request_type reqtype;
|
request_type reqtype;
|
||||||
|
|
||||||
@ -80,7 +83,7 @@ __nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
|||||||
|
|
||||||
reqtype = type == AF_INET6 ? GETHOSTBYADDRv6 : GETHOSTBYADDR;
|
reqtype = type == AF_INET6 ? GETHOSTBYADDRv6 : GETHOSTBYADDR;
|
||||||
|
|
||||||
return nscd_gethst_r (addr, len, reqtype, resultbuf, buffer, buflen,
|
return nscd_gethst_r (addr, len, reqtype, resultbuf, buffer, buflen, result,
|
||||||
h_errnop);
|
h_errnop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,14 +120,14 @@ static int
|
|||||||
internal_function
|
internal_function
|
||||||
nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
||||||
struct hostent *resultbuf, char *buffer, size_t buflen,
|
struct hostent *resultbuf, char *buffer, size_t buflen,
|
||||||
int *h_errnop)
|
struct hostent **result, int *h_errnop)
|
||||||
{
|
{
|
||||||
int sock = __nscd_open_socket ();
|
int sock = __nscd_open_socket ();
|
||||||
hst_response_header hst_resp;
|
hst_response_header hst_resp;
|
||||||
request_header req;
|
request_header req;
|
||||||
ssize_t nbytes;
|
ssize_t nbytes;
|
||||||
struct iovec vec[4];
|
struct iovec vec[4];
|
||||||
int result = -1;
|
int retval = -1;
|
||||||
|
|
||||||
if (sock == -1)
|
if (sock == -1)
|
||||||
{
|
{
|
||||||
@ -184,7 +187,7 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
|||||||
{
|
{
|
||||||
no_room:
|
no_room:
|
||||||
__set_errno (ERANGE);
|
__set_errno (ERANGE);
|
||||||
result = ERANGE;
|
retval = ERANGE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
cp += align1;
|
cp += align1;
|
||||||
@ -277,7 +280,10 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
|||||||
/* And finally read the aliases. */
|
/* And finally read the aliases. */
|
||||||
if ((size_t) TEMP_FAILURE_RETRY (__read (sock, resultbuf->h_aliases[0],
|
if ((size_t) TEMP_FAILURE_RETRY (__read (sock, resultbuf->h_aliases[0],
|
||||||
total_len)) == total_len)
|
total_len)) == total_len)
|
||||||
result = 0;
|
{
|
||||||
|
retval = 0;
|
||||||
|
*result = resultbuf;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -286,11 +292,12 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
|||||||
|
|
||||||
/* The `errno' to some value != ERANGE. */
|
/* The `errno' to some value != ERANGE. */
|
||||||
__set_errno (ENOENT);
|
__set_errno (ENOENT);
|
||||||
result = ENOENT;
|
/* Even though we have not found anything, the result is zero. */
|
||||||
|
retval = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
__close (sock);
|
__close (sock);
|
||||||
|
|
||||||
return result;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 1999, 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1998.
|
Contributed by Thorsten Kukuk <kukuk@uni-paderborn.de>, 1998.
|
||||||
|
|
||||||
@ -35,43 +35,45 @@ int __nss_not_use_nscd_passwd;
|
|||||||
|
|
||||||
static int nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
static int nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
||||||
struct passwd *resultbuf, char *buffer,
|
struct passwd *resultbuf, char *buffer,
|
||||||
size_t buflen) internal_function;
|
size_t buflen, struct passwd **result)
|
||||||
|
internal_function;
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_getpwnam_r (const char *name, struct passwd *resultbuf, char *buffer,
|
__nscd_getpwnam_r (const char *name, struct passwd *resultbuf, char *buffer,
|
||||||
size_t buflen)
|
size_t buflen, struct passwd **result)
|
||||||
{
|
{
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return nscd_getpw_r (name, strlen (name) + 1, GETPWBYNAME, resultbuf,
|
return nscd_getpw_r (name, strlen (name) + 1, GETPWBYNAME, resultbuf,
|
||||||
buffer, buflen);
|
buffer, buflen, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
__nscd_getpwuid_r (uid_t uid, struct passwd *resultbuf, char *buffer,
|
__nscd_getpwuid_r (uid_t uid, struct passwd *resultbuf, char *buffer,
|
||||||
size_t buflen)
|
size_t buflen, struct passwd **result)
|
||||||
{
|
{
|
||||||
char buf[12];
|
char buf[12];
|
||||||
size_t n;
|
size_t n;
|
||||||
|
|
||||||
n = __snprintf (buf, sizeof (buf), "%d", uid) + 1;
|
n = __snprintf (buf, sizeof (buf), "%d", uid) + 1;
|
||||||
|
|
||||||
return nscd_getpw_r (buf, n, GETPWBYUID, resultbuf, buffer, buflen);
|
return nscd_getpw_r (buf, n, GETPWBYUID, resultbuf, buffer, buflen, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
internal_function
|
internal_function
|
||||||
nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
||||||
struct passwd *resultbuf, char *buffer, size_t buflen)
|
struct passwd *resultbuf, char *buffer, size_t buflen,
|
||||||
|
struct passwd **result)
|
||||||
{
|
{
|
||||||
int sock = __nscd_open_socket ();
|
int sock = __nscd_open_socket ();
|
||||||
request_header req;
|
request_header req;
|
||||||
pw_response_header pw_resp;
|
pw_response_header pw_resp;
|
||||||
ssize_t nbytes;
|
ssize_t nbytes;
|
||||||
struct iovec vec[2];
|
struct iovec vec[2];
|
||||||
int result = -1;
|
int retval = -1;
|
||||||
|
|
||||||
if (sock == -1)
|
if (sock == -1)
|
||||||
{
|
{
|
||||||
@ -79,6 +81,9 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* No value found so far. */
|
||||||
|
*result = NULL;
|
||||||
|
|
||||||
req.version = NSCD_VERSION;
|
req.version = NSCD_VERSION;
|
||||||
req.type = type;
|
req.type = type;
|
||||||
req.key_len = keylen;
|
req.key_len = keylen;
|
||||||
@ -114,7 +119,7 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
|||||||
if (__builtin_expect (buflen < total, 0))
|
if (__builtin_expect (buflen < total, 0))
|
||||||
{
|
{
|
||||||
__set_errno (ERANGE);
|
__set_errno (ERANGE);
|
||||||
result = ERANGE;
|
retval = ERANGE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,17 +145,21 @@ nscd_getpw_r (const char *key, size_t keylen, request_type type,
|
|||||||
nbytes = TEMP_FAILURE_RETRY (__read (sock, buffer, total));
|
nbytes = TEMP_FAILURE_RETRY (__read (sock, buffer, total));
|
||||||
|
|
||||||
if (nbytes == (ssize_t) total)
|
if (nbytes == (ssize_t) total)
|
||||||
result = 0;
|
{
|
||||||
|
retval = 0;
|
||||||
|
*result = resultbuf;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* The `errno' to some value != ERANGE. */
|
/* The `errno' to some value != ERANGE. */
|
||||||
__set_errno (ENOENT);
|
__set_errno (ENOENT);
|
||||||
result = ENOENT;
|
/* Even though we have not found anything, the result is zero. */
|
||||||
|
retval = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
__close (sock);
|
__close (sock);
|
||||||
|
|
||||||
return result;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
|
/* Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
|
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
|
||||||
|
|
||||||
@ -30,24 +30,28 @@ extern int __nss_not_use_nscd_group attribute_hidden;
|
|||||||
extern int __nss_not_use_nscd_hosts attribute_hidden;
|
extern int __nss_not_use_nscd_hosts attribute_hidden;
|
||||||
|
|
||||||
extern int __nscd_getpwnam_r (const char *name, struct passwd *resultbuf,
|
extern int __nscd_getpwnam_r (const char *name, struct passwd *resultbuf,
|
||||||
char *buffer, size_t buflen);
|
char *buffer, size_t buflen,
|
||||||
|
struct passwd **result);
|
||||||
extern int __nscd_getpwuid_r (uid_t uid, struct passwd *resultbuf,
|
extern int __nscd_getpwuid_r (uid_t uid, struct passwd *resultbuf,
|
||||||
char *buffer, size_t buflen);
|
char *buffer, size_t buflen,
|
||||||
|
struct passwd **result);
|
||||||
extern int __nscd_getgrnam_r (const char *name, struct group *resultbuf,
|
extern int __nscd_getgrnam_r (const char *name, struct group *resultbuf,
|
||||||
char *buffer, size_t buflen);
|
char *buffer, size_t buflen,
|
||||||
|
struct group **result);
|
||||||
extern int __nscd_getgrgid_r (uid_t uid, struct group *resultbuf,
|
extern int __nscd_getgrgid_r (uid_t uid, struct group *resultbuf,
|
||||||
char *buffer, size_t buflen);
|
char *buffer, size_t buflen,
|
||||||
|
struct group **result);
|
||||||
extern int __nscd_gethostbyname_r (const char *name,
|
extern int __nscd_gethostbyname_r (const char *name,
|
||||||
struct hostent *resultbuf,
|
struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen,
|
char *buffer, size_t buflen,
|
||||||
int *h_errnop);
|
struct hostent **result, int *h_errnop);
|
||||||
extern int __nscd_gethostbyname2_r (const char *name, int af,
|
extern int __nscd_gethostbyname2_r (const char *name, int af,
|
||||||
struct hostent *resultbuf,
|
struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen,
|
char *buffer, size_t buflen,
|
||||||
int *h_errnop);
|
struct hostent **result, int *h_errnop);
|
||||||
extern int __nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
extern int __nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
|
||||||
struct hostent *resultbuf,
|
struct hostent *resultbuf,
|
||||||
char *buffer, size_t buflen,
|
char *buffer, size_t buflen,
|
||||||
int *h_errnop);
|
struct hostent **result, int *h_errnop);
|
||||||
|
|
||||||
#endif /* _NSCD_PROTO_H */
|
#endif /* _NSCD_PROTO_H */
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1996-2002, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1996-2002, 2003, 2004 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@cygnus.com>, 1996.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
|
||||||
|
|
||||||
@ -168,13 +168,10 @@ INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer,
|
|||||||
|
|
||||||
if (!NOT_USENSCD_NAME)
|
if (!NOT_USENSCD_NAME)
|
||||||
{
|
{
|
||||||
nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen
|
nscd_status = NSCD_NAME (ADD_VARIABLES, resbuf, buffer, buflen, result
|
||||||
H_ERRNO_VAR);
|
H_ERRNO_VAR);
|
||||||
if (nscd_status >= 0)
|
if (nscd_status >= 0)
|
||||||
{
|
return nscd_status;
|
||||||
*result = nscd_status == 0 ? resbuf : NULL;
|
|
||||||
return nscd_status;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user