From f0c833f334aa3750f0d68eda2a559c13e863c1af Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Thu, 15 May 2025 10:18:09 +0200 Subject: [PATCH] MINOR: quic: Add useful error traces about qc_ssl_sess_init() failures There were no traces to diagnose qc_ssl_sess_init() failures from QUIC traces. This patch add calls to TRACE_DEVEL() into qc_ssl_sess_init() and its caller (qc_alloc_ssl_sock_ctx()). This was useful at least to diagnose SSL context initialization failures when porting QUIC to the new OpenSSL 3.5 QUIC API. Should be easily backported as far as 2.6. --- src/quic_ssl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/quic_ssl.c b/src/quic_ssl.c index bf3871e60..04a13cb1e 100644 --- a/src/quic_ssl.c +++ b/src/quic_ssl.c @@ -878,7 +878,7 @@ static int qc_ssl_sess_init(struct quic_conn *qc, SSL_CTX *ssl_ctx, SSL **ssl) *ssl = SSL_new(ssl_ctx); if (!*ssl) { if (!retry--) - goto leave; + goto err; pool_gc(NULL); goto retry; @@ -889,7 +889,7 @@ static int qc_ssl_sess_init(struct quic_conn *qc, SSL_CTX *ssl_ctx, SSL **ssl) SSL_free(*ssl); *ssl = NULL; if (!retry--) - goto leave; + goto err; pool_gc(NULL); goto retry; @@ -899,6 +899,9 @@ static int qc_ssl_sess_init(struct quic_conn *qc, SSL_CTX *ssl_ctx, SSL **ssl) leave: TRACE_LEAVE(QUIC_EV_CONN_NEW, qc); return ret; + err: + TRACE_DEVEL("leaving on error", QUIC_EV_CONN_NEW, qc); + goto leave; } #ifdef HAVE_SSL_0RTT_QUIC @@ -996,6 +999,7 @@ int qc_alloc_ssl_sock_ctx(struct quic_conn *qc) return !ret; err: + TRACE_DEVEL("leaving on error", QUIC_EV_CONN_NEW, qc); pool_free(pool_head_quic_ssl_sock_ctx, ctx); goto leave; }