diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/disp-nis.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/disp-nis.c b/src/disp-nis.c index eafde53..2baba69 100644 --- a/src/disp-nis.c +++ b/src/disp-nis.c @@ -529,6 +529,7 @@ static struct dispatch_client * dispatch_accept_client(struct plugin_state *state, int fd) { struct dispatch_client *client; + struct linger linger; int flags; char *outbuf, *workbuf; client = malloc(sizeof(*client)); @@ -556,6 +557,9 @@ dispatch_accept_client(struct plugin_state *state, int fd) free(client); return NULL; } + linger.l_onoff = 1; + linger.l_linger = 0; + setsockopt(fd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger)); switch (client->client_addr.ss_family) { struct sockaddr_in *sin; struct sockaddr_in6 *sin6; |