+2003-04-22 Ulrich Drepper <drepper@redhat.com>
+
+ * nscd/nscd-client.h: Add declaration for __nscd_open_socket.
+ * nscd/nscd_gethst_r.c (__nscd_open_socket): Renamed from
+ open_socket. Not static anymore.
+ (nscd_gethst_r): Use __nscd_open_socket.
+ * nscd/nscd_getgr_r.c (open_socket): Removed.
+ (nscd_getgr_r): Use __nscd_open_socket.
+ * nscd/nscd_getpw_r.c (open_socket): Removed.
+ (nscd_getpw_r): Use __nscd_open_socket.
+
+ * nscd/nscd.c (main): Change type of fdn to long int and use strtol.
+ * nscd/connections.c (handle_request): Add cast to avoid warning.
+
2003-04-21 Ulrich Drepper <drepper@redhat.com>
* signal/sigfillset.c: Moved to...
/* No, sent the prepared record. */
if (TEMP_FAILURE_RETRY (write (fd, db->disabled_iov->iov_base,
db->disabled_iov->iov_len))
- != db->disabled_iov->iov_len
+ != (ssize_t) db->disabled_iov->iov_len
&& __builtin_expect (debug_level, 0) > 0)
{
/* We have problems sending the result. */
-/* Copyright (c) 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (c) 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@suse.de>, 1998.
} hst_response_header;
+/* Open socket connection to nscd server. */
+extern int __nscd_open_socket (void) attribute_hidden;
+
#endif /* nscd.h */
while ((dirent = readdir64 (d)) != NULL)
{
char *endp;
- unsigned long int fdn = strtoul (dirent->d_name, &endp, 10);
+ long int fdn = strtol (dirent->d_name, &endp, 10);
if (*endp == '\0' && fdn != dfdn && fdn >= min_close_fd)
close ((int) fdn);
}
-/* Create a socket connected to a name. */
-static int
-open_socket (void)
-{
- struct sockaddr_un addr;
- int sock;
- int saved_errno = errno;
-
- sock = __socket (PF_UNIX, SOCK_STREAM, 0);
- if (sock < 0)
- {
- __set_errno (saved_errno);
- return -1;
- }
-
- addr.sun_family = AF_UNIX;
- strcpy (addr.sun_path, _PATH_NSCDSOCKET);
- if (__connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
- {
- __close (sock);
- __set_errno (saved_errno);
- return -1;
- }
-
- return sock;
-}
-
-
static int
internal_function
nscd_getgr_r (const char *key, size_t keylen, request_type type,
struct group *resultbuf, char *buffer, size_t buflen)
{
- int sock = open_socket ();
+ int sock = __nscd_open_socket ();
request_header req;
gr_response_header gr_resp;
ssize_t nbytes;
/* Create a socket connected to a name. */
-static int
-open_socket (void)
+int
+__nscd_open_socket (void)
{
struct sockaddr_un addr;
int sock;
struct hostent *resultbuf, char *buffer, size_t buflen,
int *h_errnop)
{
- int sock = open_socket ();
+ int sock = __nscd_open_socket ();
hst_response_header hst_resp;
request_header req;
ssize_t nbytes;
return nscd_getpw_r (buf, n, GETPWBYUID, resultbuf, buffer, buflen);
}
-/* Create a socket connected to a name. */
-static int
-open_socket (void)
-{
- struct sockaddr_un addr;
- int sock;
- int saved_errno = errno;
-
- sock = __socket (PF_UNIX, SOCK_STREAM, 0);
- if (sock < 0)
- {
- __set_errno (saved_errno);
- return -1;
- }
-
- addr.sun_family = AF_UNIX;
- strcpy (addr.sun_path, _PATH_NSCDSOCKET);
- if (__connect (sock, (struct sockaddr *) &addr, sizeof (addr)) < 0)
- {
- __close (sock);
- __set_errno (saved_errno);
- return -1;
- }
-
- return sock;
-}
static int
internal_function
nscd_getpw_r (const char *key, size_t keylen, request_type type,
struct passwd *resultbuf, char *buffer, size_t buflen)
{
- int sock = open_socket ();
+ int sock = __nscd_open_socket ();
request_header req;
pw_response_header pw_resp;
ssize_t nbytes;