From 73e1085e546ed5807ea3579266b8d47d30068c22 Mon Sep 17 00:00:00 2001 From: Duco Sebel <74970928+DCSBL@users.noreply.github.com> Date: Thu, 5 Sep 2024 12:30:31 +0200 Subject: [PATCH 1/2] feat(esp_http_client): Add function to delete all headers set by 'esp_http_client_set_header' --- components/esp_http_client/esp_http_client.c | 5 +++++ components/esp_http_client/include/esp_http_client.h | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index fc2fbb4f2e..0157932ac8 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -369,6 +369,11 @@ esp_err_t esp_http_client_delete_header(esp_http_client_handle_t client, const c return http_header_delete(client->request->headers, key); } +esp_err_t esp_http_client_delete_headers(esp_http_client_handle_t client) +{ + return http_header_clean(client->request->headers); +} + esp_err_t esp_http_client_get_username(esp_http_client_handle_t client, char **value) { if (client == NULL || value == NULL) { diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index d35a361900..9dec2e9d95 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -487,6 +487,17 @@ esp_err_t esp_http_client_set_timeout_ms(esp_http_client_handle_t client, int ti */ esp_err_t esp_http_client_delete_header(esp_http_client_handle_t client, const char *key); +/** + * @brief Delete all http request headers + * + * @param[in] client The esp_http_client handle + * + * @return + * - ESP_OK + * - ESP_FAIL + */ +esp_err_t esp_http_client_delete_headers(esp_http_client_handle_t client); + /** * @brief This function will be open the connection, write all header strings and return * From f9961fda6284a6f7e64b71dd8c2514fe7b81f2e7 Mon Sep 17 00:00:00 2001 From: "nilesh.kale" Date: Fri, 27 Sep 2024 17:05:04 +0530 Subject: [PATCH 2/2] fix(esp_http_client): added initial argument checking for APIs' This MR added checks for arguments passed in APIS' of esp_http_client.c --- components/esp_http_client/esp_http_client.c | 18 +++++++++++++++++- .../esp_http_client/include/esp_http_client.h | 2 +- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index 0157932ac8..1e642d63da 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -356,21 +356,37 @@ static int http_on_chunk_header(http_parser *parser) esp_err_t esp_http_client_set_header(esp_http_client_handle_t client, const char *key, const char *value) { + if (client == NULL || client->request == NULL || client->request->headers == NULL || key == NULL || value == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_set(client->request->headers, key, value); } esp_err_t esp_http_client_get_header(esp_http_client_handle_t client, const char *key, char **value) { + if (client == NULL || client->request == NULL || client->request->headers == NULL || key == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_get(client->request->headers, key, value); } esp_err_t esp_http_client_delete_header(esp_http_client_handle_t client, const char *key) { + if (client == NULL || client->request == NULL || client->request->headers == NULL || key == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_delete(client->request->headers, key); } -esp_err_t esp_http_client_delete_headers(esp_http_client_handle_t client) +esp_err_t esp_http_client_delete_all_headers(esp_http_client_handle_t client) { + if (client == NULL || client->request == NULL || client->request->headers == NULL) { + return ESP_ERR_INVALID_ARG; + } + return http_header_clean(client->request->headers); } diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index 9dec2e9d95..510b09889f 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -496,7 +496,7 @@ esp_err_t esp_http_client_delete_header(esp_http_client_handle_t client, const c * - ESP_OK * - ESP_FAIL */ -esp_err_t esp_http_client_delete_headers(esp_http_client_handle_t client); +esp_err_t esp_http_client_delete_all_headers(esp_http_client_handle_t client); /** * @brief This function will be open the connection, write all header strings and return