SSL_CTX_SESS_NUMBER(3)
π SSL_CTX_SESS_NUMBER(3) β¨
okay so this is a page from the Library Functions Manual, bestie, and the whole squad of functions here is literally just "gimme the numbers on your session cache." Numbers girlies, rise π«Ά
πΈ NAME πΈ
SSL_CTX_sess_number, SSL_CTX_sess_connect, SSL_CTX_sess_connect_good, SSL_CTX_sess_connect_renegotiate, SSL_CTX_sess_accept, SSL_CTX_sess_accept_good, SSL_CTX_sess_accept_renegotiate, SSL_CTX_sess_hits, SSL_CTX_sess_cb_hits, SSL_CTX_sess_misses, SSL_CTX_sess_timeouts, SSL_CTX_sess_cache_full β obtain session cache statistics π
β¨ SYNOPSIS β¨
it lives in library βlibsslβ libcrypto, and you get to it like this:
#include <openssl/ssl.h>
and every single one of these returns a long and takes an SSL_CTX *ctx, no cap:
long
SSL_CTX_sess_number(SSL_CTX *ctx);
long
SSL_CTX_sess_connect(SSL_CTX *ctx);
long
SSL_CTX_sess_connect_good(SSL_CTX *ctx);
long
SSL_CTX_sess_connect_renegotiate(SSL_CTX *ctx);
long
SSL_CTX_sess_accept(SSL_CTX *ctx);
long
SSL_CTX_sess_accept_good(SSL_CTX *ctx);
long
SSL_CTX_sess_accept_renegotiate(SSL_CTX *ctx);
long
SSL_CTX_sess_hits(SSL_CTX *ctx);
long
SSL_CTX_sess_cb_hits(SSL_CTX *ctx);
long
SSL_CTX_sess_misses(SSL_CTX *ctx);
long
SSL_CTX_sess_timeouts(SSL_CTX *ctx);
long
SSL_CTX_sess_cache_full(SSL_CTX *ctx);
π¦ DESCRIPTION π¦
okay so this is where it gets fun β each one of these is a little counter, a little vibe check on your session cache. let's go one by one π
SSL_CTX_sess_number()returns the current number of sessions in the internal session cache. that's it, that's the count.SSL_CTX_sess_connect()returns the number of started SSL/TLS handshakes in client mode. started, not finished β careful πSSL_CTX_sess_connect_good()returns the number of successfully established SSL/TLS sessions in client mode. the slay count πSSL_CTX_sess_connect_renegotiate()returns the number of started renegotiations in client mode.SSL_CTX_sess_accept()returns the number of started SSL/TLS handshakes in server mode.SSL_CTX_sess_accept_good()returns the number of successfully established SSL/TLS sessions in server mode.SSL_CTX_sess_accept_renegotiate()returns the number of started renegotiations in server mode.SSL_CTX_sess_hits()returns the number of successfully reused sessions. In client mode, a session set withSSL_set_session(3)that gets successfully reused counts as a hit. In server mode, a session successfully retrieved from the internal or external cache counts as a hit. reuse era πSSL_CTX_sess_cb_hits()returns the number of successfully retrieved sessions from the external session cache in server mode.SSL_CTX_sess_misses()returns the number of sessions proposed by clients that were not found in the internal session cache in server mode. sad but true πSSL_CTX_sess_timeouts()returns the number of sessions proposed by clients that were found in the internal or external session cache in server mode, but that were invalid due to timeout. and listen β these sessions are not included in theSSL_CTX_sess_hits()count. don't double-count, bestie πSSL_CTX_sess_cache_full()returns the number of sessions that were removed because the maximum session cache size was exceeded. evicted π
fr fr everything here is just read-only stat grabbing β you're not changing anything, you're just asking your cache how it's doing.
π₯ SEE ALSO π₯
ssl(3)SSL_CTX_ctrl(3)SSL_CTX_sess_set_cache_size(3)SSL_CTX_set_session_cache_mode(3)SSL_set_session(3)
π HISTORY π
ok bestie, storytime π:
SSL_CTX_sess_number(),SSL_CTX_sess_connect(),SSL_CTX_sess_connect_good(),SSL_CTX_sess_accept(),SSL_CTX_sess_accept_good(),SSL_CTX_sess_hits(),SSL_CTX_sess_misses(), andSSL_CTX_sess_timeouts()first appeared in SSLeay 0.5.2.SSL_CTX_sess_cb_hits()first appeared in SSLeay 0.6.0.SSL_CTX_sess_connect_renegotiate(),SSL_CTX_sess_accept_renegotiate(), andSSL_CTX_sess_cache_full()first appeared in SSLeay 0.9.0.
and all of these functions have been available since OpenBSD 2.4. longevity icon behavior, honestly πβ
mwah, that's the whole page β this Debian build is dated June 8, 2025, and SSL_CTX_SESS_NUMBER(3) says byeee πβ¨
π¦ where this page comes from
- alpine 3.24: libressl-doc 4.3.1-r0 Β· custom
- arch rolling: libressl 4.4.0-1 Β· ISC AND custom:OpenSSL
- Copyright (c) 2001 The OpenSSL Project. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms