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 <w@1wt.eu>
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.
diff --git a/include/haproxy/mux_quic.h b/include/haproxy/mux_quic.h
index 72e52f3..dc14277 100644
--- a/include/haproxy/mux_quic.h
+++ b/include/haproxy/mux_quic.h
@@ -92,10 +92,22 @@
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;
}