diff --git a/src/quic_conn.c b/src/quic_conn.c index 9ede4df93..98b376e7e 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -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;