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.
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 7aa448c..97f0a22 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -2688,7 +2688,7 @@
}
}
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);
}