diff options
Diffstat (limited to 'server.c')
-rw-r--r-- | server.c | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -448,7 +448,8 @@ server_accept(int fd, short event, void *arg) event_del(&srv->srv_ev); evtimer_add(&srv->srv_evt, &evtpause); - log_debug("%s: deferring connections", __func__); + log_debug("%s: deferring connections %d", + __func__, getdtablecount()); } return; } @@ -555,14 +556,9 @@ server_close(struct client *clt, const char *msg) else if (clt->clt_output != NULL) evbuffer_free(clt->clt_output); - if (clt->clt_file != NULL) - bufferevent_free(clt->clt_file); - if (clt->clt_fd != -1) - close(clt->clt_fd); - if (clt->clt_s != -1) { close(clt->clt_s); - if (/* XXX */ -1) { + if (clt->clt_fd == -1 && 0) { /* * the output was never connected, * thus this was an inflight client. @@ -573,6 +569,11 @@ server_close(struct client *clt, const char *msg) } } + if (clt->clt_file != NULL) + bufferevent_free(clt->clt_file); + if (clt->clt_fd != -1) + close(clt->clt_fd); + if (clt->clt_log != NULL) evbuffer_free(clt->clt_log); |