mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
vhost: listen: protect listen port transfer between
...vhosts from vh destroy on zero refcount https://github.com/warmcat/libwebsockets/issues/2343
This commit is contained in:
parent
1ae1fccbec
commit
c8176085df
1 changed files with 13 additions and 0 deletions
|
@ -1349,8 +1349,21 @@ lws_vhost_destroy1(struct lws_vhost *vh)
|
|||
&v->listen_wsi);
|
||||
|
||||
/* req cx + vh lock */
|
||||
/*
|
||||
* If the vhost sees it's being destroyed and
|
||||
* in the unbind the number of wsis bound to
|
||||
* it falls to zero, it will destroy the
|
||||
* vhost opportunistically before we can
|
||||
* complete the transfer. Add a fake wsi
|
||||
* bind temporarily to disallow this...
|
||||
*/
|
||||
v->count_bound_wsi++;
|
||||
__lws_vhost_unbind_wsi(wsi);
|
||||
lws_vhost_bind_wsi(v, wsi);
|
||||
/*
|
||||
* ... remove the fake wsi bind
|
||||
*/
|
||||
v->count_bound_wsi--;
|
||||
break;
|
||||
}
|
||||
} lws_end_foreach_ll(v, vhost_next);
|
||||
|
|
Loading…
Add table
Reference in a new issue