Browse Source

Set no linger on all connected clients

master
Con Kolivas 10 years ago
parent
commit
0c16e193ce
  1. 5
      src/connector.c

5
src/connector.c

@ -131,6 +131,7 @@ retry:
} }
keep_sockalive(fd); keep_sockalive(fd);
nolinger_socket(fd);
LOGINFO("Connected new client %d on socket %d from %s:%d", ci->nfds, fd, client->address_name, port); LOGINFO("Connected new client %d on socket %d from %s:%d", ci->nfds, fd, client->address_name, port);
@ -155,10 +156,6 @@ static int drop_client(conn_instance_t *ci, client_instance_t *client)
ck_wlock(&ci->lock); ck_wlock(&ci->lock);
fd = client->fd; fd = client->fd;
if (fd != -1) { if (fd != -1) {
const struct linger so_linger = { 1, 0 };
if (unlikely(setsockopt(client->fd, SOL_SOCKET, SO_LINGER, &so_linger, sizeof(so_linger))))
LOGWARNING("setsockopt failed with errno %d:%s", errno, strerror(errno));
Close(client->fd); Close(client->fd);
HASH_DEL(clients, client); HASH_DEL(clients, client);
HASH_DELETE(fdhh, fdclients, client); HASH_DELETE(fdhh, fdclients, client);

Loading…
Cancel
Save