mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
BUG/MINOR: quic: Do not use ack delay during the handshakes
As revealed by GH #2120 opened by @Tristan971, there are cases where ACKs have to be sent without packet to acknowledge because the ACK timer has been triggered and the connection needs to probe the peer at the same time. Indeed Thank you to @Tristan971 for having reported this issue. Must be backported to 2.6 and 2.7.
This commit is contained in:
parent
75b954fea4
commit
b5efe7901d
@ -4505,9 +4505,13 @@ int qc_treat_rx_pkts(struct quic_conn *qc, struct quic_enc_level *cur_el,
|
||||
struct quic_arng ar = { .first = pkt->pn, .last = pkt->pn };
|
||||
|
||||
if (pkt->flags & QUIC_FL_RX_PACKET_ACK_ELICITING) {
|
||||
int arm_ack_timer =
|
||||
qc->state >= QUIC_HS_ST_COMPLETE &&
|
||||
qel->pktns == &qc->pktns[QUIC_TLS_PKTNS_01RTT];
|
||||
|
||||
qel->pktns->flags |= QUIC_FL_PKTNS_ACK_REQUIRED;
|
||||
qel->pktns->rx.nb_aepkts_since_last_ack++;
|
||||
qc_idle_timer_rearm(qc, 1, 1);
|
||||
qc_idle_timer_rearm(qc, 1, arm_ack_timer);
|
||||
}
|
||||
if (pkt->pn > largest_pn) {
|
||||
largest_pn = pkt->pn;
|
||||
|
Loading…
Reference in New Issue
Block a user