MINOR: quic: Add connection flags to traces
This should help in diagnosing issues.
Some adjustments have to be done to avoid deferencing a quic_conn objects from
TRACE_*() calls.
Must be backported to 2.7 and 2.6.
diff --git a/src/quic_conn.c b/src/quic_conn.c
index 9412b89..1670da4 100644
--- a/src/quic_conn.c
+++ b/src/quic_conn.c
@@ -280,7 +280,7 @@
if (qc) {
const struct quic_tls_ctx *tls_ctx;
- chunk_appendf(&trace_buf, " : qc@%p", qc);
+ chunk_appendf(&trace_buf, " : qc@%p flags=0x%x", qc, qc->flags);
if (mask & QUIC_EV_CONN_INIT) {
chunk_appendf(&trace_buf, "\n odcid");
quic_cid_dump(&trace_buf, &qc->odcid);
@@ -5673,6 +5673,7 @@
pool_free(pool_head_quic_conn_rxbuf, qc->rx.buf.area);
pool_free(pool_head_quic_conn, qc);
+ qc = NULL;
TRACE_PROTO("QUIC conn. freed", QUIC_EV_CONN_FREED, qc);
diff --git a/src/xprt_quic.c b/src/xprt_quic.c
index 2a4d01e..cfb93e7 100644
--- a/src/xprt_quic.c
+++ b/src/xprt_quic.c
@@ -31,6 +31,7 @@
/* If the quic-conn timer has already expired free the quic-conn. */
if (qc->flags & QUIC_FL_CONN_EXP_TIMER) {
quic_conn_release(qc);
+ qc = NULL;
goto leave;
}
@@ -108,7 +109,7 @@
{
struct quic_conn *qc = NULL;
- TRACE_ENTER(QUIC_EV_CONN_NEW, conn);
+ TRACE_ENTER(QUIC_EV_CONN_NEW, qc);
/* do not store the context if already set */
if (*xprt_ctx)