diff --git a/listener.c b/listener.c index a78ca0d6..d21e8dbe 100644 --- a/listener.c +++ b/listener.c @@ -741,6 +741,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; }