From 433f31219cf2816213fa795362ab0408ad85a5c0 Mon Sep 17 00:00:00 2001 From: "harshal.patil" Date: Mon, 30 Jan 2023 13:39:18 +0530 Subject: [PATCH 1/1] http_client: fixed looping caused when disable_auto_redirect enabled Closes https://github.com/espressif/esp-idf/issues/10629 --- components/esp_http_client/esp_http_client.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 1fa6c47f37..8a1528448b 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -861,7 +861,12 @@ esp_err_t esp_http_client_set_redirection(esp_http_client_handle_t client) return ESP_ERR_INVALID_ARG; } ESP_LOGD(TAG, "Redirect to %s", client->location); - return esp_http_client_set_url(client, client->location); + esp_err_t err = esp_http_client_set_url(client, client->location); + if (err == ESP_OK) { + client->redirect_counter ++; + client->process_again = 1; + } + return err; } static esp_err_t esp_http_check_response(esp_http_client_handle_t client) @@ -882,10 +887,10 @@ static esp_err_t esp_http_check_response(esp_http_client_handle_t client) if (client->disable_auto_redirect) { http_dispatch_event(client, HTTP_EVENT_REDIRECT, NULL, 0); } else { - ESP_ERROR_CHECK(esp_http_client_set_redirection(client)); + if (esp_http_client_set_redirection(client) != ESP_OK){ + return ESP_FAIL; + }; } - client->redirect_counter ++; - client->process_again = 1; break; case HttpStatus_Unauthorized: esp_http_client_add_auth(client); -- 2.37.1 (Apple Git-137.1)