From c386a8851e7e94179532213097d68b7288c5f3ce Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 4 Dec 2018 16:06:28 +0100 Subject: [PATCH] MINOR: mux-h1: Make sure to return 1 in h1_recv() when needed In h1_recv(), return 1 if we have data available, or if h1_recv_allowed() failed, to be sure h1_process() is called. Also don't subscribe if our buffer is full. --- src/mux_h1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index 494c56328..533187691 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1467,7 +1467,7 @@ static int h1_recv(struct h1c *h1c) int rcvd = 0; if (h1c->wait_event.wait_reason & SUB_CAN_RECV) - return 0; + return (b_data(&h1c->ibuf)); if (!h1_recv_allowed(h1c)) { rcvd = 1; @@ -1498,7 +1498,7 @@ static int h1_recv(struct h1c *h1c) } } - if (h1_recv_allowed(h1c)) + if (h1_recv_allowed(h1c) && (b_data(&h1c->ibuf) < b_size(&h1c->ibuf))) conn->xprt->subscribe(conn, SUB_CAN_RECV, &h1c->wait_event); else rcvd = 1;