mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
Merge branch 'feature/esp-tls_optimize_memory_v4.4' into 'release/v4.4'
esp-tls: add api to free client session(backport v4.4) See merge request espressif/esp-idf!18410
This commit is contained in:
@@ -39,6 +39,7 @@ static const char *TAG = "esp-tls";
|
||||
#define _esp_tls_conn_delete esp_mbedtls_conn_delete
|
||||
#define _esp_tls_net_init esp_mbedtls_net_init
|
||||
#define _esp_tls_get_client_session esp_mbedtls_get_client_session
|
||||
#define _esp_tls_free_client_session esp_mbedtls_free_client_session
|
||||
#ifdef CONFIG_ESP_TLS_SERVER
|
||||
#define _esp_tls_server_session_create esp_mbedtls_server_session_create
|
||||
#define _esp_tls_server_session_delete esp_mbedtls_server_session_delete
|
||||
@@ -577,6 +578,11 @@ esp_tls_client_session_t *esp_tls_get_client_session(esp_tls_t *tls)
|
||||
{
|
||||
return _esp_tls_get_client_session(tls);
|
||||
}
|
||||
|
||||
void esp_tls_free_client_session(esp_tls_client_session_t *client_session)
|
||||
{
|
||||
_esp_tls_free_client_session(client_session);
|
||||
}
|
||||
#endif /* CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS */
|
||||
|
||||
|
||||
|
@@ -688,6 +688,16 @@ esp_err_t esp_tls_plain_tcp_connect(const char *host, int hostlen, int port, con
|
||||
* NULL on Failure
|
||||
*/
|
||||
esp_tls_client_session_t *esp_tls_get_client_session(esp_tls_t *tls);
|
||||
|
||||
/**
|
||||
* @brief Free the client session
|
||||
*
|
||||
* This function should be called after esp_tls_get_client_session().
|
||||
*
|
||||
* @param[in] client_session context as esp_tls_client_session_t
|
||||
*
|
||||
*/
|
||||
void esp_tls_free_client_session(esp_tls_client_session_t *client_session);
|
||||
#endif /* CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS */
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -151,6 +151,14 @@ esp_tls_client_session_t *esp_mbedtls_get_client_session(esp_tls_t *tls)
|
||||
|
||||
return client_session;
|
||||
}
|
||||
|
||||
void esp_mbedtls_free_client_session(esp_tls_client_session_t *client_session)
|
||||
{
|
||||
if (client_session) {
|
||||
mbedtls_ssl_session_free(&(client_session->saved_session));
|
||||
free(client_session);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS */
|
||||
|
||||
int esp_mbedtls_handshake(esp_tls_t *tls, const esp_tls_cfg_t *cfg)
|
||||
|
@@ -104,6 +104,11 @@ esp_err_t set_client_config(const char *hostname, size_t hostlen, esp_tls_cfg_t
|
||||
* Internal Callback for mbedtls_get_client_session
|
||||
*/
|
||||
esp_tls_client_session_t *esp_mbedtls_get_client_session(esp_tls_t *tls);
|
||||
|
||||
/**
|
||||
* Internal Callback for mbedtls_free_client_session
|
||||
*/
|
||||
void esp_mbedtls_free_client_session(esp_tls_client_session_t *client_session);
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -68,7 +68,7 @@ static const char REQUEST[] = "GET " WEB_URL " HTTP/1.1\r\n"
|
||||
extern const uint8_t server_root_cert_pem_start[] asm("_binary_server_root_cert_pem_start");
|
||||
extern const uint8_t server_root_cert_pem_end[] asm("_binary_server_root_cert_pem_end");
|
||||
#ifdef CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS
|
||||
esp_tls_client_session_t *tls_client_session = NULL;
|
||||
static esp_tls_client_session_t *tls_client_session = NULL;
|
||||
#endif
|
||||
static void https_get_request(esp_tls_cfg_t cfg)
|
||||
{
|
||||
@@ -187,7 +187,7 @@ static void https_get_request_using_already_saved_session(void)
|
||||
.client_session = tls_client_session,
|
||||
};
|
||||
https_get_request(cfg);
|
||||
free(tls_client_session);
|
||||
esp_tls_free_client_session(tls_client_session);
|
||||
tls_client_session = NULL;
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user