From: Frederic Lecaille Date: Fri, 5 Jan 2024 14:45:17 +0000 (+0100) Subject: MINOR: quic-be: Prevent the MUX to send/receive data X-Git-Tag: v3.3-dev2~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=855fd63f90d9bd1071a407b45b5bd4e213b8556d;p=thirdparty%2Fhaproxy.git MINOR: quic-be: Prevent the MUX to send/receive data Such actions must be interrupted until the handshake completion. --- diff --git a/src/xprt_quic.c b/src/xprt_quic.c index 02da5efc3..47a8843a3 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -155,8 +155,13 @@ static int qc_xprt_start(struct connection *conn, void *ctx) qc = conn->handle.qc; TRACE_ENTER(QUIC_EV_CONN_NEW, qc); - /* mux-quic can now be considered ready. */ - qc->mux_state = QC_MUX_READY; + if (objt_listener(conn->target)) { + /* mux-quic can now be considered ready. */ + qc->mux_state = QC_MUX_READY; + } + else { + conn->flags |= CO_FL_SSL_WAIT_HS | CO_FL_WAIT_L6_CONN; + } /* Schedule quic-conn to ensure post handshake frames are emitted. This * is not done for 0-RTT as xprt->start happens before handshake