esp_http_client: Fix reset errno to 0 before call esp_transport_read

Closes https://github.com/espressif/esp-idf/issues/9020
This commit is contained in:
jim
2023-10-18 15:50:35 +08:00
parent 209a0361c0
commit 56e5190f33

View File

@ -1028,6 +1028,7 @@ static int esp_http_client_get_data(esp_http_client_handle_t client)
ESP_LOGD(TAG, "data_process=%lld, content_length=%lld", client->response->data_process, client->response->content_length);
errno = 0;
int rlen = esp_transport_read(client->transport, res_buffer->data, client->buffer_size_rx, client->timeout_ms);
if (rlen >= 0) {
// When tls error is ESP_TLS_ERR_SSL_WANT_READ (-0x6900), esp_trasnport_read returns ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT (0x0).
@ -1258,6 +1259,7 @@ int64_t esp_http_client_fetch_headers(esp_http_client_handle_t client)
client->response->status_code = -1;
while (client->state < HTTP_STATE_RES_COMPLETE_HEADER) {
errno = 0;
buffer->len = esp_transport_read(client->transport, buffer->data, client->buffer_size_rx, client->timeout_ms);
if (buffer->len <= 0) {
if (buffer->len == ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT) {