Merge branch 'contrib/github_pr_16076' into 'master'

fix(esp_http_client): fix spurious async open error (GitHub PR)

Closes IDFGH-15428

See merge request espressif/esp-idf!40273
This commit is contained in:
Mahavir Jain
2025-07-17 14:38:34 +05:30

View File

@@ -1767,11 +1767,17 @@ esp_err_t esp_http_client_open(esp_http_client_handle_t client, int write_len)
client->post_len = write_len; client->post_len = write_len;
esp_err_t err; esp_err_t err;
if ((err = esp_http_client_connect(client)) != ESP_OK) { if ((err = esp_http_client_connect(client)) != ESP_OK) {
if (client->is_async && err == ESP_ERR_HTTP_CONNECTING) {
return ESP_ERR_HTTP_EAGAIN;
}
http_dispatch_event(client, HTTP_EVENT_ERROR, esp_transport_get_error_handle(client->transport), 0); http_dispatch_event(client, HTTP_EVENT_ERROR, esp_transport_get_error_handle(client->transport), 0);
http_dispatch_event_to_event_loop(HTTP_EVENT_ERROR, &client, sizeof(esp_http_client_handle_t)); http_dispatch_event_to_event_loop(HTTP_EVENT_ERROR, &client, sizeof(esp_http_client_handle_t));
return err; return err;
} }
if ((err = esp_http_client_request_send(client, write_len)) != ESP_OK) { if ((err = esp_http_client_request_send(client, write_len)) != ESP_OK) {
if (client->is_async && errno == EAGAIN) {
return ESP_ERR_HTTP_EAGAIN;
}
http_dispatch_event(client, HTTP_EVENT_ERROR, esp_transport_get_error_handle(client->transport), 0); http_dispatch_event(client, HTTP_EVENT_ERROR, esp_transport_get_error_handle(client->transport), 0);
http_dispatch_event_to_event_loop(HTTP_EVENT_ERROR, &client, sizeof(esp_http_client_handle_t)); http_dispatch_event_to_event_loop(HTTP_EVENT_ERROR, &client, sizeof(esp_http_client_handle_t));
return err; return err;