]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: mux-h1: Wake up H1C after its creation if input buffer is not empty
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 21 Jan 2021 16:45:45 +0000 (17:45 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 28 Jan 2021 15:27:15 +0000 (16:27 +0100)
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

index 5681a248f7f1380bd49fb02ba2c1b843c7ba0b64..69cc4682649787ee2d497fbcb95ecbca4c0cd2ab 100644 (file)
@@ -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 */