From: Frédéric Lécaille Date: Tue, 29 Mar 2022 15:41:57 +0000 (+0200) Subject: BUG/MINOR: quic: Missing probing packets when coalescing X-Git-Tag: v2.6-dev5~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6570e17890963f0b7da4dc9220ca89d07d45b56;p=thirdparty%2Fhaproxy.git BUG/MINOR: quic: Missing probing packets when coalescing Before having a look at the next encryption level to build packets if there is no more ack-eliciting frames to send we must check we have not to probe from the current encryption level anymore. If not, we only send one datagram instead of sending two datagrams giving less chance to recover from packet loss. --- diff --git a/src/xprt_quic.c b/src/xprt_quic.c index bac4ab3692..253aa85df4 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -2882,7 +2882,7 @@ static int qc_prep_pkts(struct quic_conn *qc, struct qring *qr, * select the next level. */ if ((tel == QUIC_TLS_ENC_LEVEL_INITIAL || tel == QUIC_TLS_ENC_LEVEL_HANDSHAKE) && - (LIST_ISEMPTY(&qel->pktns->tx.frms))) { + (LIST_ISEMPTY(&qel->pktns->tx.frms) && !qel->pktns->tx.pto_probe)) { /* If QUIC_TLS_ENC_LEVEL_HANDSHAKE was already reached let's try QUIC_TLS_ENC_LEVEL_APP */ if (tel == QUIC_TLS_ENC_LEVEL_HANDSHAKE && next_tel == tel) next_tel = QUIC_TLS_ENC_LEVEL_APP;