commit ddf7a437de12fab9e000e5b555fdbf1891632dad from: Omar Polo date: Sat Jun 24 14:21:57 2023 UTC fix client_close_ev when tls_close() returns TLS_WANT_POLLIN/OUT in those cases we need to reschedule the function and return, instead of going on with the cleanup. commit - c5edb157405883dc7c869beb2c1e05cefe325fdf commit + ddf7a437de12fab9e000e5b555fdbf1891632dad blob - ea2eb60c4ba9a2b0ac0784e680a805fa45a2ddc5 blob + 2d77353ce5fcd824d1d04523a0df3bec5557208b --- server.c +++ server.c @@ -1244,10 +1244,10 @@ client_close_ev(int fd, short event, void *d) switch (tls_close(c->ctx)) { case TLS_WANT_POLLIN: event_once(c->fd, EV_READ, client_close_ev, c, NULL); - break; + return; case TLS_WANT_POLLOUT: event_once(c->fd, EV_WRITE, client_close_ev, c, NULL); - break; + return; } connected_clients--;