mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-13 19:39:05 +02:00
BUG/MINOR: quic: Wrong PTO calculation
Due to missing brackets around the ternary C operator, quic_pto() could return zero at the first run, before the QUIC connection was completely initialized. This leaded the idle timeout task to be executed before this initialization completion. Then this connection could be immediately released. This bug was revealed by the multi_packet_client_hello QUIC tracker test. Must be backported to 2.6.
This commit is contained in:
@@ -68,7 +68,7 @@ static inline unsigned int quic_pto(struct quic_conn *qc)
|
||||
struct quic_loss *ql = &qc->path->loss;
|
||||
|
||||
return (ql->srtt >> 3) + QUIC_MAX(ql->rtt_var, QUIC_TIMER_GRANULARITY) +
|
||||
HA_ATOMIC_LOAD(&qc->state) >= QUIC_HS_ST_COMPLETE ? qc->max_ack_delay : 0;
|
||||
(HA_ATOMIC_LOAD(&qc->state) >= QUIC_HS_ST_COMPLETE ? qc->max_ack_delay : 0);
|
||||
}
|
||||
|
||||
void quic_loss_srtt_update(struct quic_loss *ql,
|
||||
|
||||
Reference in New Issue
Block a user