mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 09:09:10 -04:00
Merge branch 'bugfix/http_client_eagain_v4.3' into 'release/v4.3'
esp_http_client: Fixed handling of EAGAIN return (backport v4.3) See merge request espressif/esp-idf!15273
This commit is contained in:
commit
b8ab11b1c7
@ -967,11 +967,18 @@ int esp_http_client_read(esp_http_client_handle_t client, char *buffer, int len)
|
||||
}
|
||||
ESP_LOG_LEVEL(sev, TAG, "esp_transport_read returned:%d and errno:%d ", rlen, errno);
|
||||
}
|
||||
if (rlen < 0 && ridx == 0 && !esp_http_client_is_complete_data_received(client)) {
|
||||
return ESP_FAIL;
|
||||
} else {
|
||||
#ifdef CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS
|
||||
if (rlen == ESP_TLS_ERR_SSL_WANT_READ || errno == EAGAIN) {
|
||||
#else
|
||||
if (errno == EAGAIN) {
|
||||
#endif
|
||||
ESP_LOGD(TAG, "Received EAGAIN! rlen = %d, errno %d", rlen, errno);
|
||||
return ridx;
|
||||
}
|
||||
if (rlen < 0 && ridx == 0 && !esp_http_client_is_complete_data_received(client)) {
|
||||
return ESP_FAIL;
|
||||
}
|
||||
return ridx;
|
||||
}
|
||||
res_buffer->output_ptr = buffer + ridx;
|
||||
http_parser_execute(client->parser, client->parser_settings, res_buffer->data, rlen);
|
||||
|
@ -327,6 +327,7 @@ esp_err_t esp_https_ota_perform(esp_https_ota_handle_t https_ota_handle)
|
||||
} else if (data_read > 0) {
|
||||
return _ota_write(handle, (const void *)handle->ota_upgrade_buf, data_read);
|
||||
} else {
|
||||
ESP_LOGE(TAG, "data read %d, errno %d", data_read, errno);
|
||||
return ESP_FAIL;
|
||||
}
|
||||
handle->state = ESP_HTTPS_OTA_SUCCESS;
|
||||
|
Loading…
x
Reference in New Issue
Block a user