BUG/MINOR: trace/quic: enable conn/session pointer recovery from quic_conn

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>
This commit is contained in:
Willy Tarreau 2024-08-06 11:07:13 +02:00 committed by Christopher Faulet
parent 762f3df4e4
commit ab921e1935

View 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))