diff options
author | Daniel <smartalock@user.github.invalid> | 2021-11-22 15:37:18 +0000 |
---|---|---|
committer | Andy Green <andy@warmcat.com> | 2021-11-22 15:44:23 +0000 |
commit | c295f8014ad88a3bdf833abd772375c92eb1d484 (patch) | |
tree | f6d0dfeeabdb2e8bdc4b3e5d502cf6067ff7ee62 | |
parent | d42a7900d6e1c1ed533ca4206d4f248b96d48a11 (diff) | |
download | libwebsockets-c295f8014ad88a3bdf833abd772375c92eb1d484.tar.gz |
extpoll: make sure DEL_POLL_FD only coming once
https://github.com/warmcat/libwebsockets/issues/2500
-rw-r--r-- | lib/core-net/pollfd.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/core-net/pollfd.c b/lib/core-net/pollfd.c index e5a8ac9b..dea85aec 100644 --- a/lib/core-net/pollfd.c +++ b/lib/core-net/pollfd.c @@ -438,15 +438,17 @@ __remove_wsi_socket_from_fds(struct lws *wsi) /* removed wsi has no position any more */ wsi->position_in_fds_table = LWS_NO_FDS_POS; - } #if defined(LWS_WITH_EXTERNAL_POLL) - /* remove also from external POLL support via protocol 0 */ - if (lws_socket_is_valid(wsi->desc.sockfd) && wsi->a.vhost && - wsi->a.vhost->protocols[0].callback(wsi, LWS_CALLBACK_DEL_POLL_FD, - wsi->user_space, (void *) &pa, 0)) - ret = -1; + /* remove also from external POLL support via protocol 0 */ + if (lws_socket_is_valid(wsi->desc.sockfd) && wsi->a.vhost && + wsi->a.vhost->protocols[0].callback(wsi, + LWS_CALLBACK_DEL_POLL_FD, + wsi->user_space, + (void *) &pa, 0)) + ret = -1; #endif + } #if defined(LWS_WITH_SERVER) if (!context->being_destroyed && |