From: Christopher Faulet Date: Tue, 4 Dec 2018 15:06:28 +0000 (+0100) Subject: MINOR: mux-h1: Make sure to return 1 in h1_recv() when needed X-Git-Tag: v1.9-dev10~58 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c386a8851e7e94179532213097d68b7288c5f3ce;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index 494c56328b..533187691c 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;