BUG/MINOR: trace/quic: enable conn/session pointer recovery from quic_conn
authorWilly Tarreau <w@1wt.eu>
Tue, 6 Aug 2024 09:07:13 +0000 (11:07 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 3 Sep 2024 16:38:12 +0000 (18:38 +0200)
In __trace_enabled(), a quic_conn was detected, but it was not possible
to derive the connection nor the session from it, which was quite limiting
in terms of ability to track a same instance.

This should be backported to at least 3.0, maybe even 2.6.

(cherry picked from commit aa1915a9f559724cb3fc2be39a2d928d99556e5a)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/trace.c

index fcf557b..bed9d79 100644 (file)
@@ -27,6 +27,7 @@
 #include <haproxy/istbuf.h>
 #include <haproxy/list.h>
 #include <haproxy/log.h>
+#include <haproxy/quic_conn-t.h>
 #include <haproxy/sink.h>
 #include <haproxy/trace.h>
 
@@ -127,6 +128,10 @@ int __trace_enabled(enum trace_level level, uint64_t mask, struct trace_source *
        if (src->arg_def & TRC_ARGS_APPCTX)
                appctx = trace_pick_arg(src->arg_def & TRC_ARGS_APPCTX, a1, a2, a3, a4);
 
+#ifdef USE_QUIC
+       if (qc && !conn)
+               conn = qc->conn;
+#endif
        if (!sess && strm)
                sess = strm->sess;
        else if (!sess && conn && LIST_INLIST(&conn->sess_el))