diff --git a/src/coio.cc b/src/coio.cc index 4c9a885d2dceae0356c0caeb3766345e6dafc06e..6b94cf2a654ba11d040e28b9e8e98f475faf1c28 100644 --- a/src/coio.cc +++ b/src/coio.cc @@ -257,8 +257,10 @@ coio_accept(struct ev_io *coio, struct sockaddr *addr, int fd = sio_accept(coio->fd, addr, &addrlen); if (fd >= 0) { if (evio_setsockopt_client(fd, addr->sa_family, - SOCK_STREAM) != 0) + SOCK_STREAM) != 0) { + close(fd); diag_raise(); + } return fd; } if (! sio_wouldblock(errno))