mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
http_client: fixed looping caused when disable_auto_redirect enabled
Closes https://github.com/espressif/esp-idf/issues/10629
This commit is contained in:
parent
ca0623e311
commit
f39f6011f5
@ -827,7 +827,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)
|
||||
@ -848,10 +853,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);
|
||||
|
@ -519,6 +519,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…
x
Reference in New Issue
Block a user