mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'fix/http_client_disable_auto_redirect_causes_loop' into 'master'
http_client: fixed looping caused when disable_auto_redirect enabled Closes IDFGH-9243 See merge request espressif/esp-idf!22158
This commit is contained in:
commit
190f4c72bd
@ -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; // used only in the blocking mode (when esp_http_client_perform() is called)
|
||||
}
|
||||
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);
|
||||
|
@ -537,6 +537,7 @@ esp_http_client_transport_t esp_http_client_get_transport_type(esp_http_client_h
|
||||
* @brief Set redirection URL.
|
||||
* When received the 30x code from the server, the client stores the redirect URL provided by the server.
|
||||
* This function will set the current URL to redirect to enable client to execute the redirection request.
|
||||
* When `disable_auto_redirect` is set, the client will not call this function but the event `HTTP_EVENT_REDIRECT` will be dispatched giving the user contol over the redirection event.
|
||||
*
|
||||
* @param[in] client The esp_http_client handle
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user