esp_http_server: Check for failure in stopping http server

In some cases, sending the shutdown signal may fail, which causes `httpd_stop` to wait indefinitely.
This PR adds a check to prevent this infinite loop.

Signed-off-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>

Closes https://github.com/espressif/esp-idf/pull/7843
pull/7903/head
Dániel Buga 2021-11-05 10:50:06 +01:00 zatwierdzone przez Shubham Kulkarni
rodzic 534cd5bb31
commit 994038e0e9
1 zmienionych plików z 5 dodań i 1 usunięć

Wyświetl plik

@ -450,7 +450,11 @@ esp_err_t httpd_stop(httpd_handle_t handle)
struct httpd_ctrl_data msg;
memset(&msg, 0, sizeof(msg));
msg.hc_msg = HTTPD_CTRL_SHUTDOWN;
cs_send_to_ctrl_sock(hd->msg_fd, hd->config.ctrl_port, &msg, sizeof(msg));
int ret = 0;
if ((ret = cs_send_to_ctrl_sock(hd->msg_fd, hd->config.ctrl_port, &msg, sizeof(msg))) < 0) {
ESP_LOGE(TAG, "Failed to send shutdown signal err=%d", ret);
return ESP_FAIL;
}
ESP_LOGD(TAG, LOG_FMT("sent control msg to stop server"));
while (hd->hd_td.status != THREAD_STOPPED) {