From f6a4d41dd01e7c43d84ad77ed1fae51c57c585be Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 7 Oct 2025 18:53:19 +0200 Subject: [PATCH] MINOR: h3: Set known input payload length of the sedesc Set value when data are transfer to the upper layer, in h3_rcv_buf(). The difference between the known length of the payload before and after a parsing loop is added to value. When a content-length is specified in the message, the h3s field is used. Otherwise, it is the h3s field. --- src/h3.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/h3.c b/src/h3.c index e0a1233d5..5b94ea40a 100644 --- a/src/h3.c +++ b/src/h3.c @@ -1684,6 +1684,7 @@ static ssize_t h3_rcv_buf(struct qcs *qcs, struct buffer *b, int fin) struct h3s *h3s = qcs->ctx; struct h3c *h3c = h3s->h3c; ssize_t total = 0, ret = 0; + uint64_t prev_data_len = ((h3s->flags & H3_SF_HAVE_CLEN) ? h3s->body_len : h3s->data_len); TRACE_ENTER(H3_EV_RX_FRAME, qcs->qcc->conn, qcs); @@ -1892,6 +1893,8 @@ static ssize_t h3_rcv_buf(struct qcs *qcs, struct buffer *b, int fin) */ done: + qcs->sd->kip += ((h3s->flags & H3_SF_HAVE_CLEN) ? h3s->body_len : h3s->data_len) - prev_data_len; + TRACE_LEAVE(H3_EV_RX_FRAME, qcs->qcc->conn, qcs); return total;