Skip to content

Commit bc63628

Browse files
Merge branch 'contrib/github_pr_15059' into 'master'
feat(https): Get TLS errors from http client (GitHub PR) Closes IDFGH-14265 See merge request espressif/esp-idf!35833
2 parents d93e84b + 783ff22 commit bc63628

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

components/esp_http_client/esp_http_client.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1209,6 +1209,15 @@ 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+
{
1214+
if (!client) {
1215+
ESP_LOGE(TAG, "Invalid client handle");
1216+
return ESP_FAIL;
1217+
}
1218+
return esp_tls_get_and_clear_last_error(esp_transport_get_error_handle(client->transport), tls_code, tls_flags);
1219+
}
1220+
12121221
esp_err_t esp_http_client_set_method(esp_http_client_handle_t client, esp_http_client_method_t method)
12131222
{
12141223
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)