Skip to content

Commit 0e19d1f

Browse files
committed
Merge branch 'bugfix/fix_http_client_async_mode_v5.0' into 'release/v5.0'
fix(esp_http_client): Fix esp_http_client async mode (v5.0) See merge request espressif/esp-idf!27515
2 parents 330fbdd + c2f66b5 commit 0e19d1f

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

components/esp_http_client/esp_http_client.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,12 @@ static int esp_http_client_get_data(esp_http_client_handle_t client)
10301030

10311031
int rlen = esp_transport_read(client->transport, res_buffer->data, client->buffer_size_rx, client->timeout_ms);
10321032
if (rlen >= 0) {
1033-
http_parser_execute(client->parser, client->parser_settings, res_buffer->data, rlen);
1033+
// When tls error is ESP_TLS_ERR_SSL_WANT_READ (-0x6900), esp_trasnport_read returns ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT (0x0).
1034+
// We should not execute http_parser_execute() on this condition as it sets the internal state machine in an
1035+
// invalid state.
1036+
if (!(client->is_async && rlen == 0)) {
1037+
http_parser_execute(client->parser, client->parser_settings, res_buffer->data, rlen);
1038+
}
10341039
}
10351040
return rlen;
10361041
}

0 commit comments

Comments
 (0)