From 41a076087bcf7e2b8cf6c3373a485c5a2e38c4a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Tue, 4 Jan 2022 16:57:37 +0100 Subject: [PATCH] MINOR: quic: Flag asap the connection having reached the anti-amplification limit The best location to flag the connection is just after having built the packet which reached the anti-amplication limit. --- src/xprt_quic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xprt_quic.c b/src/xprt_quic.c index 0ceb98abe..7b371fd63 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -2484,8 +2484,6 @@ static int qc_prep_pkts(struct quic_conn *qc, struct qring *qr, /* Leave room for the datagram header */ pos += dg_headlen; if (!quic_peer_validated_addr(qc) && objt_listener(qc->conn->target)) { - if (qc->tx.prep_bytes >= 3 * qc->rx.bytes) - qc->flags |= QUIC_FL_CONN_ANTI_AMPLIFICATION_REACHED; end = pos + QUIC_MIN(qc->path->mtu, 3 * qc->rx.bytes - qc->tx.prep_bytes); } else { @@ -4869,6 +4867,8 @@ static struct quic_tx_packet *qc_build_pkt(unsigned char **pos, /* Consume a packet number */ qel->pktns->tx.next_pn++; qc->tx.prep_bytes += pkt->len; + if (qc->tx.prep_bytes >= 3 * qc->rx.bytes) + HA_ATOMIC_OR(&qc->flags, QUIC_FL_CONN_ANTI_AMPLIFICATION_REACHED); /* Now that a correct packet is built, let us consume <*pos> buffer. */ *pos = end; /* Attach the built packet to its tree. */