From: Christopher Faulet Date: Wed, 17 Apr 2019 09:03:22 +0000 (+0200) Subject: MINOR: mux-h1: Handle read0 during TCP splicing X-Git-Tag: v2.0-dev3~247 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=038ad8123bf51c1b3e4da0bba4be75e33714a5fc;p=thirdparty%2Fhaproxy.git MINOR: mux-h1: Handle read0 during TCP splicing It avoids a roundtrip with underlying I/O callbacks to do so. If a read0 is handled at the end of h1_rcv_pipe(), the flag CS_FL_REOS is set on the conn_stream. And if there is no data in the pipe, the flag CS_FL_EOS is also set. This path may be backported to 1.9. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index c820ebe3cc..b854fb2322 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -2318,6 +2318,11 @@ static int h1_rcv_pipe(struct conn_stream *cs, struct pipe *pipe, unsigned int c } end: + if (conn_xprt_read0_pending(cs->conn)) { + cs->flags |= CS_FL_REOS; + if (!pipe->data) + cs->flags |= CS_FL_EOS; + } return ret; }