BUG/MINOR: mux-h2: Remove H2_CF_DEM_DFULL flags when the demux buffer is reset

This only happens when a connection error is detected or when the H2
connection is in ERR/ERR2 state. The demux buffer is explicitly reset. In
that case, it is important to remove the flag reporting this buffer as full.

It is probably worth to backport this patch to 3.2. But it is not mandatory
on older versions because it does not fix any known issue.
This commit is contained in:
Christopher Faulet 2025-09-09 15:46:30 +02:00
parent 12edcccc82
commit 3b7112aa1d

View File

@ -5069,8 +5069,10 @@ static int h2_process(struct h2c *h2c)
if (h2c->glitches != prev_glitches && !(h2c->flags & H2_CF_IS_BACK))
session_add_glitch_ctr(h2c->conn->owner, h2c->glitches - prev_glitches);
if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR))
if (h2c->st0 >= H2_CS_ERROR || (h2c->flags & H2_CF_ERROR)) {
b_reset(&h2c->dbuf);
h2c->flags &= ~H2_CF_DEM_DFULL;
}
}
was_blocked |= !!(h2c->flags & H2_CF_DEM_MROOM);
h2_send(h2c);