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

If network is down, SS reaches ALL_RETRIES_FAILED, and user

callback returns LWSSSSRET_DESTROY_ME, it does not go to DESTROYING
state
This commit is contained in:
Jed Lu 2020-12-18 21:59:10 -08:00 committed by Andy Green
parent f409878bb6
commit 83feefe288

View file

@ -211,6 +211,10 @@ _lws_ss_backoff(lws_ss_handle_t *h, lws_usec_t us_override)
&h->retry, &conceal);
if (!conceal) {
lwsl_info("%s: ss %p: abandon conn attempt \n",__func__, h);
if (h->seqstate == SSSEQ_IDLE) /* been here? */
return LWSSSSRET_OK;
h->seqstate = SSSEQ_IDLE;
return lws_ss_event_helper(h, LWSSSCS_ALL_RETRIES_FAILED);
@ -485,10 +489,14 @@ _lws_ss_client_connect(lws_ss_handle_t *h, int is_retry)
if (!lws_client_connect_via_info(&i)) {
r = lws_ss_event_helper(h, LWSSSCS_UNREACHABLE);
if (r == LWSSSSRET_DESTROY_ME)
return !!_lws_ss_handle_state_ret(r, NULL, &h);
if (r)
return r;
r = lws_ss_backoff(h);
if (r == LWSSSSRET_DESTROY_ME)
return !!_lws_ss_handle_state_ret(r, NULL, &h);
if (r)
return r;