From d9ee788b7a3c1043fa66688267a8c1dc8e17084f Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 21 Jan 2021 17:45:45 +0100 Subject: [PATCH] MINOR: mux-h1: Wake up H1C after its creation if input buffer is not empty When a H1 connection is created, we now wakeup the H1C tasklet if there are some data in the input buffer. If not we only subscribe for reads. This patch is required to fix the TCP to H1 upgrades. --- src/mux_h1.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index 5681a24..69cc468 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -812,7 +812,9 @@ static int h1_init(struct connection *conn, struct proxy *proxy, struct session } /* prepare to read something */ - if (h1_recv_allowed(h1c)) + if (b_data(&h1c->ibuf)) + tasklet_wakeup(h1c->wait_event.tasklet); + else if (h1_recv_allowed(h1c)) h1c->conn->xprt->subscribe(h1c->conn, h1c->conn->xprt_ctx, SUB_RETRY_RECV, &h1c->wait_event); /* mux->wake will be called soon to complete the operation */ -- 1.7.10.4