diff --git a/listener.c b/listener.c index a549b385..c8f34282 100644 --- a/listener.c +++ b/listener.c @@ -737,6 +737,10 @@ iocp_listener_disable_impl(struct evconnlistener *lev, int shutdown) } LeaveCriticalSection(&as->lock); } + + if (shutdown && lev->flags & LEV_OPT_CLOSE_ON_FREE) + evutil_closesocket(lev_iocp->fd); + UNLOCK(lev); return 0; }