]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: quic: Do not probe from an already probing packet number space
authorFrédéric Lécaille <flecaille@haproxy.com>
Wed, 30 Mar 2022 12:44:49 +0000 (14:44 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 1 Apr 2022 14:26:05 +0000 (16:26 +0200)
During a handshake, after having prepared a probe upon a PTO expiration from
process_timer(), we wake up the I/O handler to make it send probing packets.
This handler first treat incoming packets  which trigger a fast retransmission
leading to send too much probing (duplicated) packets. In this cas we cancel
the fast retranmission.

src/xprt_quic.c

index dd9c3543ae08c7aed679454bffe43e722facfba0..c48d1c251304f994f44dd9e3497d38b9f295410a 100644 (file)
@@ -2320,6 +2320,15 @@ static void qc_prep_hdshk_fast_retrans(struct quic_conn *qc)
        struct quic_tx_packet *pkt;
        struct list *tmp = &itmp;
 
+       /* Do not probe from a packet number space if some probing
+        * was already asked.
+        */
+       if (qel->pktns->tx.pto_probe) {
+               qel = hqel;
+               if (qel->pktns->tx.pto_probe)
+                       return;
+       }
+
  start:
        pkt = NULL;
        pkts = &qel->pktns->tx.pkts;