From 575b1f6ac6a376c8bff07157dfdf778666533f41 Mon Sep 17 00:00:00 2001 From: Lorenzo Consolaro Date: Fri, 27 Sep 2024 12:38:06 +0200 Subject: [PATCH] [https] Get TLS errors from http client --- components/esp_http_client/esp_http_client.c | 12 ++++++++++++ components/esp_http_client/include/esp_http_client.h | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/components/esp_http_client/esp_http_client.c b/components/esp_http_client/esp_http_client.c index d54558ec1616..34be8759c4ea 100644 --- a/components/esp_http_client/esp_http_client.c +++ b/components/esp_http_client/esp_http_client.c @@ -1155,6 +1155,18 @@ int esp_http_client_get_errno(esp_http_client_handle_t client) return esp_transport_get_errno(client->transport); } +esp_err_t esp_http_client_get_tls_error(esp_http_client_handle_t client, int *tls_code, int *tls_flags){ + if (!client || !tls_code || !tls_flags) { + ESP_LOGE(TAG, "Invalid client handle or params"); + return ESP_FAIL; + } + return esp_tls_get_and_clear_last_error( + esp_transport_get_error_handle(client->transport), + tls_code, + tls_flags + ); +} + esp_err_t esp_http_client_set_method(esp_http_client_handle_t client, esp_http_client_method_t method) { client->connection_info.method = method; diff --git a/components/esp_http_client/include/esp_http_client.h b/components/esp_http_client/include/esp_http_client.h index 86274bdae515..bd92fe756d22 100644 --- a/components/esp_http_client/include/esp_http_client.h +++ b/components/esp_http_client/include/esp_http_client.h @@ -457,6 +457,17 @@ esp_err_t esp_http_client_set_user_data(esp_http_client_handle_t client, void *d */ int esp_http_client_get_errno(esp_http_client_handle_t client); +/** + * @brief Get HTTPS client TLS errno + * + * @param[in] client The esp_http_client handle + * + * @return + * - (-1) if invalid argument + * - errno + */ +esp_err_t esp_http_client_get_tls_error(esp_http_client_handle_t client, int *esp_tls_error_code, int *esp_tls_flags); + /** * @brief Set http request method *