SSL_CTX_SESS_NUMBER(3)

πŸ“¦ version 4.4.0, in alpine 3.24, arch rolling

πŸ’… 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 with SSL_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 the SSL_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 πŸ”₯


πŸ‘‘ 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(), and SSL_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(), and SSL_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