BUG/MINOR: mux-h1: Disable splicing only if input data was processed

In h1_rcv_buf(), the splicing is systematically disabled if it was previously
enabled. When it happens, if the splicing is enabled it means the channel's
buffer was empty before calling h1_rcv_buf(). Thus, the only reason to disable
the splicing at this step is when some input data have just been processed.

This patch may be backported to 2.1 and 2.0.
This commit is contained in:
Christopher Faulet 2020-07-03 15:12:00 +02:00
parent 0060be9ccf
commit 7b7016bf6e

View File

@ -2688,7 +2688,7 @@ static size_t h1_rcv_buf(struct conn_stream *cs, struct buffer *buf, size_t coun
}
}
else {
if (h1s->flags & H1S_F_SPLICED_DATA) {
if (ret && h1s->flags & H1S_F_SPLICED_DATA) {
h1s->flags &= ~H1S_F_SPLICED_DATA;
TRACE_STATE("disable splicing", H1_EV_STRM_RECV, h1c->conn, h1s);
}