1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-09 00:00:04 +01:00

ss: allow that request_tx may get told DESTROY_ME

This commit is contained in:
Jed Lu 2021-03-31 15:07:27 -07:00 committed by Andy Green
parent ff76604006
commit 69f2ad9ced

View file

@ -301,13 +301,15 @@ _lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(lws_ss_state_return_t r, struct lws
static void
lws_ss_timeout_sul_check_cb(lws_sorted_usec_list_t *sul)
{
lws_ss_state_return_t r;
lws_ss_handle_t *h = lws_container_of(sul, lws_ss_handle_t, sul);
lwsl_info("%s: retrying %s after backoff\n", __func__, lws_ss_tag(h));
/* we want to retry... */
h->seqstate = SSSEQ_DO_RETRY;
lws_ss_request_tx(h);
r = lws_ss_request_tx(h);
_lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, NULL, &h);
}
int
@ -1068,9 +1070,10 @@ late_bail:
break;
case LWSSSSRET_TX_DONT_SEND:
case LWSSSSRET_DISCONNECT_ME:
if (lws_ss_backoff(h))
/* has been destroyed */
if (lws_ss_backoff(h) == LWSSSSRET_DESTROY_ME) {
lws_ss_destroy(&h);
return 1;
}
break;
case LWSSSSRET_DESTROY_ME:
lws_ss_destroy(&h);