diff --git a/src/mux_h1.c b/src/mux_h1.c index a6dffeb09..7aa448c2b 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -2781,6 +2781,12 @@ static int h1_rcv_pipe(struct conn_stream *cs, struct pipe *pipe, unsigned int c h1s->flags &= ~H1S_F_BUF_FLUSH; h1s->flags |= H1S_F_SPLICED_DATA; TRACE_STATE("enable splicing", H1_EV_STRM_RECV, cs->conn, h1s); + + if (!h1_recv_allowed(h1s->h1c)) { + TRACE_DEVEL("leaving on !recv_allowed", H1_EV_STRM_RECV, cs->conn, h1s); + goto end; + } + if (h1m->state == H1_MSG_DATA && count > h1m->curr_len) count = h1m->curr_len; ret = cs->conn->xprt->rcv_pipe(cs->conn, cs->conn->xprt_ctx, pipe, count);