From: Olivier Houchard Date: Thu, 29 Nov 2018 16:00:38 +0000 (+0100) Subject: BUG/MEDIUM: stream_interface: Don't check if the handshake is done. X-Git-Tag: v1.9-dev9~111 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e1f68bcf9adfcd30e3316b0822c2626cc2a6a84;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: stream_interface: Don't check if the handshake is done. In si_cs_send(), don't give up and subscribe if the connection is still waiting for a SSL handshake. We will never be woken up once the handshake is done if we're using HTTP/2. Instead, directly try to send data. When using the mux_pt, if the handshake is not done yet, snd_buf() would return 0 and we will subscribe anyway. --- diff --git a/src/stream_interface.c b/src/stream_interface.c index 78c0c6ad47..93ef344ec8 100644 --- a/src/stream_interface.c +++ b/src/stream_interface.c @@ -601,13 +601,6 @@ int si_cs_send(struct conn_stream *cs) if (conn->flags & CO_FL_ERROR || cs->flags & CS_FL_ERROR) return 1; - if (conn->flags & CO_FL_HANDSHAKE) { - /* a handshake was requested */ - /* Schedule ourself to be woken up once the handshake is done */ - conn->xprt->subscribe(conn, SUB_CAN_SEND, &si->wait_event); - return 0; - } - /* we might have been called just after an asynchronous shutw */ if (conn->flags & CO_FL_SOCK_WR_SH || oc->flags & CF_SHUTW) return 1;