From 690e0f07f581018dba12d7c099b42e9555a7bb08 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Tue, 11 Jun 2019 16:37:24 +0200 Subject: [PATCH] BUG/MEDIUM: h1: Don't consider we're connected if the handshake isn't done. In h1_process(), don't consider we're connected if we still have handshakes pending. It used not to happen, because we would not be called if there were any ongoing handshakes, but that changed now that the handshakes are handled by a xprt, and not by conn_fd_handler() directly. --- src/mux_h1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index ae9e8fd6f..7fd07d355 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1936,7 +1936,8 @@ static int h1_process(struct h1c * h1c) return -1; if (h1c->flags & H1C_F_CS_WAIT_CONN) { - if (!(conn->flags & (CO_FL_CONNECTED|CO_FL_ERROR))) + if (!(conn->flags & (CO_FL_CONNECTED|CO_FL_ERROR)) || + (conn->flags & CO_FL_HANDSHAKE)) goto end; h1c->flags &= ~H1C_F_CS_WAIT_CONN; h1_wake_stream_for_send(h1s);