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 ae9e8fd..7fd07d3 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -1936,7 +1936,8 @@
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);