From 893ff81a8d1c184d849858c1d2097551ba68da1b Mon Sep 17 00:00:00 2001 From: Liu DongMiao Date: Thu, 7 Mar 2024 09:42:19 +0000 Subject: [PATCH] raw: connect callback can be triggered twice --- lib/roles/raw-skt/ops-raw-skt.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/roles/raw-skt/ops-raw-skt.c b/lib/roles/raw-skt/ops-raw-skt.c index 453c64e75..5f0a89886 100644 --- a/lib/roles/raw-skt/ops-raw-skt.c +++ b/lib/roles/raw-skt/ops-raw-skt.c @@ -60,12 +60,14 @@ lws_raw_skt_connect(struct lws *wsi) } #endif - n = user_callback_handle_rxflow(wsi->a.protocol->callback, - wsi, wsi->role_ops->adoption_cb[lwsi_role_server(wsi)], - wsi->user_space, NULL, 0); - if (n) { - lws_inform_client_conn_fail(wsi, (void *)"user", 4); - return 1; + if (!wsi->hdr_parsing_completed) { + n = user_callback_handle_rxflow(wsi->a.protocol->callback, + wsi, wsi->role_ops->adoption_cb[lwsi_role_server(wsi)], + wsi->user_space, NULL, 0); + if (n) { + lws_inform_client_conn_fail(wsi, (void *)"user", 4); + return 1; + } } lws_set_timeout(wsi, NO_PENDING_TIMEOUT, 0);