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>
(cherry picked from commit ab921e193529c368afdbda979dab2ca025485edf)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit e3abe12c2e6bd7d4dbeb20c04781e2f36820c0e9)
Signed-off-by: Willy Tarreau <w@1wt.eu>
diff --git a/src/trace.c b/src/trace.c
index 325edcd..a3dbe3d 100644
--- a/src/trace.c
+++ b/src/trace.c
@@ -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 @@
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))