diff options
author | Andrew Zaborowski <andrew.zaborowski@intel.com> | 2022-12-30 17:47:01 +0100 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2022-12-30 11:34:45 -0600 |
commit | f1c916d71411deb335c93c380a56bb225bbd92af (patch) | |
tree | ea0bc2b8e751e7c7378cda9e8f94476fb0f001a8 | |
parent | 9188c152d711dc3f7b26d820a01b40dd05e0662b (diff) |
tls: Add l_tls_get_session_resumed
-rw-r--r-- | ell/ell.sym | 1 | ||||
-rw-r--r-- | ell/tls-private.h | 1 | ||||
-rw-r--r-- | ell/tls.c | 10 | ||||
-rw-r--r-- | ell/tls.h | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/ell/ell.sym b/ell/ell.sym index 6c836e1c..4d8596e0 100644 --- a/ell/ell.sym +++ b/ell/ell.sym @@ -519,6 +519,7 @@ global: l_tls_set_version_range; l_tls_set_domain_mask; l_tls_set_session_cache; + l_tls_get_session_resumed; l_tls_alert_to_str; l_tls_set_debug; l_tls_set_cert_dump_path; diff --git a/ell/tls-private.h b/ell/tls-private.h index 6a9bd29c..46889ad8 100644 --- a/ell/tls-private.h +++ b/ell/tls-private.h @@ -266,6 +266,7 @@ struct l_tls { uint8_t session_cipher_suite_id[2]; uint8_t session_compression_method_id; char *session_peer_identity; + bool session_resumed; struct { bool secure_renegotiation; @@ -213,6 +213,7 @@ static void tls_reset_handshake(struct l_tls *tls) tls->session_id_size_replaced = 0; tls->session_id_new = false; l_free(l_steal_ptr(tls->session_peer_identity)); + tls->session_resumed = false; } static void tls_cleanup_handshake(struct l_tls *tls) @@ -3058,6 +3059,7 @@ static void tls_finished(struct l_tls *tls) TLS_SET_STATE(TLS_HANDSHAKE_DONE); tls->ready = true; + tls->session_resumed = resuming; if (session_update && tls->session_update_cb) { tls->in_callback = true; @@ -3841,6 +3843,14 @@ LIB_EXPORT void l_tls_set_session_cache(struct l_tls *tls, tls->session_prefix = l_strdup(group_prefix); } +LIB_EXPORT bool l_tls_get_session_resumed(struct l_tls *tls) +{ + if (unlikely(!tls || !tls->ready)) + return false; + + return tls->session_resumed; +} + LIB_EXPORT const char *l_tls_alert_to_str(enum l_tls_alert_desc desc) { switch (desc) { @@ -134,6 +134,7 @@ void l_tls_set_session_cache(struct l_tls *tls, struct l_settings *settings, unsigned int max_sessions, l_tls_session_update_cb_t update_cb, void *user_data); +bool l_tls_get_session_resumed(struct l_tls *tls); const char *l_tls_alert_to_str(enum l_tls_alert_desc desc); |