From 274b1d6662ed07e678adb5eb6532c884909a7404 Mon Sep 17 00:00:00 2001 From: bigtreetech Date: Thu, 10 Jul 2025 17:40:31 +0800 Subject: [PATCH] =?UTF-8?q?fix=20Stuck=20when=20=E2=80=98disable=5Fauto=5F?= =?UTF-8?q?reconnect=20=3D=20false=E2=80=99=20and=20Call=20'esp=5Fwebsocke?= =?UTF-8?q?t=5Fclient=5Fclose'=20when=20the=20connection=20fails=20and=20a?= =?UTF-8?q?utomatically=20reconnects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/esp_websocket_client/esp_websocket_client.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/components/esp_websocket_client/esp_websocket_client.c b/components/esp_websocket_client/esp_websocket_client.c index c0d22b2df6..636243a3e6 100644 --- a/components/esp_websocket_client/esp_websocket_client.c +++ b/components/esp_websocket_client/esp_websocket_client.c @@ -1220,6 +1220,7 @@ static int esp_websocket_client_send_close(esp_websocket_client_handle_t client, static esp_err_t esp_websocket_client_close_with_optional_body(esp_websocket_client_handle_t client, bool send_body, int code, const char *data, int len, TickType_t timeout) { + int err = ESP_OK; if (client == NULL) { return ESP_ERR_INVALID_ARG; } @@ -1236,9 +1237,13 @@ static esp_err_t esp_websocket_client_close_with_optional_body(esp_websocket_cli } if (send_body) { - esp_websocket_client_send_close(client, code, data, len + 2, portMAX_DELAY); // len + 2 -> always sending the code + err = esp_websocket_client_send_close(client, code, data, len + 2, portMAX_DELAY); // len + 2 -> always sending the code } else { - esp_websocket_client_send_close(client, 0, NULL, 0, portMAX_DELAY); // only opcode frame + err = esp_websocket_client_send_close(client, 0, NULL, 0, portMAX_DELAY); // only opcode frame + } + if (err != ESP_OK) { + ESP_LOGW(TAG, "Client was not connected"); + return ESP_FAIL; } // Set closing bit to prevent from sending PING frames while connected