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