BUG/MEDIUM: h1: Allow reception if we have early data

In h1_recv_allowed(), do not forbid the reception if we are yet to
complete the connection, if we have received early data on it. That way,
we can deal with them right away, instead of waiting for the handshake
to be done.

This should be backported up to 2.8.
This commit is contained in:
Olivier Houchard 2025-09-09 17:32:18 +02:00 committed by Olivier Houchard
parent d7696d11e1
commit aa25ddb773

View File

@ -527,7 +527,8 @@ static inline int h1_recv_allowed(const struct h1c *h1c)
return 0;
}
if (h1c->conn->flags & (CO_FL_WAIT_L4_CONN|CO_FL_WAIT_L6_CONN)) {
if (h1c->conn->flags & (CO_FL_WAIT_L4_CONN|CO_FL_WAIT_L6_CONN) &&
!(h1c->conn->flags & CO_FL_EARLY_DATA)) {
TRACE_DEVEL("recv not allowed because of (waitl4|waitl6) on connection", H1_EV_H1C_RECV|H1_EV_H1C_BLK, h1c->conn);
return 0;
}