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.
This commit is contained in:
Christopher Faulet 2021-01-21 17:45:45 +01:00
parent ad4daf629e
commit d9ee788b7a

View File

@ -812,7 +812,9 @@ static int h1_init(struct connection *conn, struct proxy *proxy, struct session
} }
/* prepare to read something */ /* 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); 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 */ /* mux->wake will be called soon to complete the operation */