MINOR: quic: Add useful error traces about qc_ssl_sess_init() failures
authorFrederic Lecaille <flecaille@haproxy.com>
Thu, 15 May 2025 08:18:09 +0000 (10:18 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 20 May 2025 14:47:52 +0000 (16:47 +0200)
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.

(cherry picked from commit 894595b711835dba9a7432fa364ea57806b2bb0c)
Signed-off-by: Willy Tarreau <w@1wt.eu>

src/quic_ssl.c

index 7e409e3..4734136 100644 (file)
@@ -752,7 +752,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;
@@ -763,7 +763,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;
@@ -773,6 +773,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
@@ -870,6 +873,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;
 }