QUIC: do not arm loss detection timer if nothing was sent.

Notably, this became quite practicable after the recent fix in cd8018bc81a5.

Additionally, do not arm loss detection timer on connection termination.
This commit is contained in:
Sergey Kandaurov 2022-02-02 15:57:08 +03:00
parent 3b4d10caf6
commit 8a61c89a27

View File

@ -104,7 +104,12 @@ ngx_quic_output(ngx_connection_t *c)
return NGX_ERROR;
}
if (in_flight != cg->in_flight && !qc->send_timer_set && !qc->closing) {
if (in_flight == cg->in_flight || qc->closing) {
/* no ack-eliciting data was sent or we are done */
return NGX_OK;
}
if (!qc->send_timer_set) {
qc->send_timer_set = 1;
ngx_add_timer(c->read, qc->tp.max_idle_timeout);
}