diff --git a/lib/core-net/vhost.c b/lib/core-net/vhost.c index 852155bd6..661432617 100644 --- a/lib/core-net/vhost.c +++ b/lib/core-net/vhost.c @@ -1354,6 +1354,20 @@ __lws_vhost_destroy2(struct lws_vhost *vh) while (vh->timed_vh_protocol_list) __lws_timed_callback_remove(vh, vh->timed_vh_protocol_list); #endif + /* + * remove ourselves from the defer binding list + */ + lws_start_foreach_llp(struct lws_vhost **, pv, + vh->context->no_listener_vhost_list) { + if (*pv == vh) { + lwsl_debug("deferred iface: removing vh %s\n", + (*pv)->name); + *pv = vh->no_listener_vhost_list; + vh->no_listener_vhost_list = NULL; + break; + } + } lws_end_foreach_llp(pv, no_listener_vhost_list); + /* * let the protocols destroy the per-vhost protocol objects */