mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-05 09:01:07 +00:00
Update.
2004-09-03 Ulrich Drepper <drepper@redhat.com> * nscd/nscd.c (parse_opt): Use writev instead of two write for invalidate command.
This commit is contained in:
parent
1da484d94a
commit
ead07d01fa
@ -1,3 +1,8 @@
|
|||||||
|
2004-09-03 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
|
* nscd/nscd.c (parse_opt): Use writev instead of two write for
|
||||||
|
invalidate command.
|
||||||
|
|
||||||
2004-09-02 Ulrich Drepper <drepper@redhat.com>
|
2004-09-02 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* nscd/connections.c (nscd_run): Check early for invalid request types.
|
* nscd/connections.c (nscd_run): Check early for invalid request types.
|
||||||
|
24
nscd/nscd.c
24
nscd/nscd.c
@ -39,6 +39,7 @@
|
|||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <sys/uio.h>
|
||||||
#include <sys/un.h>
|
#include <sys/un.h>
|
||||||
|
|
||||||
#include "dbg_log.h"
|
#include "dbg_log.h"
|
||||||
@ -304,12 +305,14 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
int sock = nscd_open_socket ();
|
int sock = nscd_open_socket ();
|
||||||
request_header req;
|
|
||||||
ssize_t nbytes;
|
|
||||||
|
|
||||||
if (sock == -1)
|
if (sock == -1)
|
||||||
exit (EXIT_FAILURE);
|
exit (EXIT_FAILURE);
|
||||||
|
|
||||||
|
request_header req;
|
||||||
|
ssize_t nbytes;
|
||||||
|
struct iovec iov[2];
|
||||||
|
|
||||||
if (strcmp (arg, "passwd") == 0)
|
if (strcmp (arg, "passwd") == 0)
|
||||||
req.key_len = sizeof "passwd";
|
req.key_len = sizeof "passwd";
|
||||||
else if (strcmp (arg, "group") == 0)
|
else if (strcmp (arg, "group") == 0)
|
||||||
@ -321,19 +324,18 @@ parse_opt (int key, char *arg, struct argp_state *state)
|
|||||||
|
|
||||||
req.version = NSCD_VERSION;
|
req.version = NSCD_VERSION;
|
||||||
req.type = INVALIDATE;
|
req.type = INVALIDATE;
|
||||||
nbytes = TEMP_FAILURE_RETRY (write (sock, &req,
|
|
||||||
sizeof (request_header)));
|
|
||||||
if (nbytes != sizeof (request_header))
|
|
||||||
{
|
|
||||||
close (sock);
|
|
||||||
exit (EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
nbytes = TEMP_FAILURE_RETRY (write (sock, (void *)arg, req.key_len));
|
iov[0].iov_base = &req;
|
||||||
|
iov[0].iov_len = sizeof (req);
|
||||||
|
iov[1].iov_base = (void *) key;
|
||||||
|
iov[1].iov_len = req.key_len;
|
||||||
|
|
||||||
|
nbytes = TEMP_FAILURE_RETRY (writev (sock, iov, 2));
|
||||||
|
|
||||||
close (sock);
|
close (sock);
|
||||||
|
|
||||||
exit (nbytes != req.key_len ? EXIT_FAILURE : EXIT_SUCCESS);
|
exit (nbytes != iov[0].iov_len + iov[1].iov_len
|
||||||
|
? EXIT_FAILURE : EXIT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
case 't':
|
case 't':
|
||||||
|
Loading…
Reference in New Issue
Block a user