From: Olivier Houchard Date: Tue, 11 Jun 2019 14:37:24 +0000 (+0200) Subject: BUG/MEDIUM: h1: Don't consider we're connected if the handshake isn't done. X-Git-Tag: v2.0-dev7~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=690e0f07f581018dba12d7c099b42e9555a7bb08;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index ae9e8fd6fe..7fd07d3557 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);