Skip to content

Commit 30c2907

Browse files
feat(https): Get TLS errors from http client
update PR update mr Update components/esp_http_client/esp_http_client.c Co-authored-by: Nilesh Kale <[email protected]>
1 parent d93e84b commit 30c2907

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

components/esp_http_client/esp_http_client.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,14 @@ int esp_http_client_get_errno(esp_http_client_handle_t client)
12091209
return esp_transport_get_errno(client->transport);
12101210
}
12111211

1212+
esp_err_t esp_http_client_get_and_clear_last_tls_error(esp_http_client_handle_t client, int *tls_code, int *tls_flags){
1213+
if (!client) {
1214+
ESP_LOGE(TAG, "Invalid client handle");
1215+
return ESP_FAIL;
1216+
}
1217+
return esp_tls_get_and_clear_last_error(esp_transport_get_error_handle(client->transport), tls_code, tls_flags);
1218+
}
1219+
12121220
esp_err_t esp_http_client_set_method(esp_http_client_handle_t client, esp_http_client_method_t method)
12131221
{
12141222
client->connection_info.method = method;

components/esp_http_client/include/esp_http_client.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,23 @@ esp_err_t esp_http_client_set_user_data(esp_http_client_handle_t client, void *d
467467
*/
468468
int esp_http_client_get_errno(esp_http_client_handle_t client);
469469

470+
/**
471+
* @brief Returns last error in esp_tls with detailed mbedtls related error codes.
472+
* The error information is cleared internally upon return
473+
*
474+
* @param[in] client The esp_http_client handle
475+
* @param[out] esp_tls_error_code last error code returned from mbedtls api (set to zero if none)
476+
* This pointer could be NULL if caller does not care about esp_tls_code
477+
* @param[out] esp_tls_flags last certification verification flags (set to zero if none)
478+
* This pointer could be NULL if caller does not care about esp_tls_code
479+
*
480+
* @return
481+
* - ESP_FAIL if invalid parameters
482+
* - ESP_OK (0) if no error occurred
483+
* - specific error code (based on ESP_ERR_ESP_TLS_BASE) otherwise
484+
*/
485+
esp_err_t esp_http_client_get_and_clear_last_tls_error(esp_http_client_handle_t client, int *esp_tls_error_code, int *esp_tls_flags);
486+
470487
/**
471488
* @brief Set http request method
472489
*

0 commit comments

Comments
 (0)