]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
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)
committerFrederic Lecaille <flecaille@haproxy.com>
Tue, 20 May 2025 13:00:06 +0000 (15:00 +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.

src/quic_ssl.c

index 7e409e31bb0ce52f2f61fb1c6e3a8d745aece99f..4734136a4302225a699d145d4bbee661ad2fca4e 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;
 }