Revert "fix(esp_http_client): Call event_handler after header value is received"

This reverts commit 04ac8e43db.

When `http_on_header_event` is called, event_handler is invoked and
then the current header key and header value are freed. In the previous
approach, `http_on_header_event` was called from `http_on_header_value`,
but it lead to an issue where if the value is received in multiple chunks,
then the current header key and value were freed and thus header was not
processed correctly which might result in connection issues. Calling
`http_on_heaher_event` from `http_on_header_field` ensures that the current
header field and value are processed properly

Fixes https://github.com/espressif/esp-idf/issues/13497
Fixes https://github.com/espressif/esp-idf/issues/13097
This commit is contained in:
Harshit Malpani 2024-04-01 13:15:57 +05:30
parent f231b262b9
commit 2814b5a330
No known key found for this signature in database
GPG Key ID: 441A8ACC7853D493

View File

@ -248,6 +248,7 @@ static int http_on_header_event(esp_http_client_handle_t client)
static int http_on_header_field(http_parser *parser, const char *at, size_t length)
{
esp_http_client_t *client = parser->data;
http_on_header_event(client);
http_utils_append_string(&client->current_header_key, at, length);
return 0;
@ -268,7 +269,6 @@ static int http_on_header_value(http_parser *parser, const char *at, size_t leng
http_utils_append_string(&client->auth_header, at, length);
}
http_utils_append_string(&client->current_header_value, at, length);
http_on_header_event(client);
return 0;
}