When sending a frame ACK, the parser state is not equal to H2_CS_FRAME_H
and we used to report it as an error, which is not true. In fact we should
only indicate when we skip remaining data.
This may be backported as far as 2.1.
(cherry picked from commit
bba7a4dafdabf6e4b669e905778ab1904eb4784d)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit
e6fb02032ed3166abfdd99b172adbb6868b0887d)
Signed-off-by: Willy Tarreau <w@1wt.eu>
}
if (h2c->st0 != H2_CS_FRAME_H) {
- TRACE_DEVEL("stream error, skip frame payload", H2_EV_RX_FRAME, h2c->conn, h2s);
+ if (h2c->dfl)
+ TRACE_DEVEL("skipping remaining frame payload", H2_EV_RX_FRAME, h2c->conn, h2s);
ret = MIN(b_data(&h2c->dbuf), h2c->dfl);
b_del(&h2c->dbuf, ret);
h2c->dfl -= ret;