From 03dcf560aea8ae77d1e9458cbfd9fd309426b43e Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Tue, 17 May 2022 18:03:37 +0200 Subject: [PATCH] BUG/MINOR: mux-quic: update session's idle delay before stream creation This commit is an adaptation from the following patch : commit d0de6776826ee18da74e6949752e2f44cba8fdf2 Author: Willy Tarreau Date: Fri Feb 4 09:05:37 2022 +0100 BUG/MINOR: mux-h2: update the session's idle delay before creating the stream This should fix the incorrect timeouts present in httplog format for QUIC requests. --- include/haproxy/mux_quic.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/include/haproxy/mux_quic.h b/include/haproxy/mux_quic.h index 72e52f318..dc14277ce 100644 --- a/include/haproxy/mux_quic.h +++ b/include/haproxy/mux_quic.h @@ -92,10 +92,22 @@ static inline int qcc_install_app_ops(struct qcc *qcc, static inline struct conn_stream *qc_attach_cs(struct qcs *qcs, struct buffer *buf) { - if (!cs_new_from_endp(qcs->endp, qcs->qcc->conn->owner, buf)) + struct session *sess = qcs->qcc->conn->owner; + + /* TODO duplicated from mux_h2 */ + sess->t_idle = tv_ms_elapsed(&sess->tv_accept, &now) - sess->t_handshake; + + if (!cs_new_from_endp(qcs->endp, sess, buf)) return NULL; ++qcs->qcc->nb_cs; + + /* TODO duplicated from mux_h2 */ + sess->accept_date = date; + sess->tv_accept = now; + sess->t_handshake = 0; + sess->t_idle = 0; + return qcs->endp->cs; }