From 038ad8123bf51c1b3e4da0bba4be75e33714a5fc Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 17 Apr 2019 11:03:22 +0200 Subject: [PATCH] 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. --- src/mux_h1.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mux_h1.c b/src/mux_h1.c index c820ebe3c..b854fb232 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; } -- 2.47.3