From c3b12547479d42f834ffbaa9c29b6f4d2ddb48fd Mon Sep 17 00:00:00 2001 From: Jin Wang Date: Sat, 17 Apr 2021 05:39:12 +0100 Subject: [PATCH] client: make sure we get CCE if timeout on server reply If facing a captive portal, we may seem to get a tcp level connection okay but find that communication is silently dropped, leading to us timing out in LRS_WAITING_SERVER_REPLY. If so, we need to handle it as a connection fail in order to satisfy at least Captive Portal detection. --- lib/core-net/wsi-timeout.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/core-net/wsi-timeout.c b/lib/core-net/wsi-timeout.c index 19da524f4..44da7c44d 100644 --- a/lib/core-net/wsi-timeout.c +++ b/lib/core-net/wsi-timeout.c @@ -114,6 +114,9 @@ lws_sul_wsitimeout_cb(lws_sorted_usec_list_t *sul) if (lwsi_state(wsi) == LRS_WAITING_SSL) lws_inform_client_conn_fail(wsi, (void *)"Timed out waiting SSL", 21); + if (lwsi_state(wsi) == LRS_WAITING_SERVER_REPLY) + lws_inform_client_conn_fail(wsi, + (void *)"Timed out waiting server reply", 30); #endif lws_context_lock(cx, __func__);