}
if (!qc->retransmit.timer_set && !qc->closing) {
- ngx_add_timer(&qc->retransmit, qc->ctp.max_ack_delay);
+ ngx_add_timer(&qc->retransmit,
+ qc->ctp.max_ack_delay + NGX_QUIC_HARDCODED_PTO);
}
return NGX_OK;
do {
start = ngx_queue_data(q, ngx_quic_frame_t, queue);
- wait = start->last + qc->ctp.max_ack_delay - now;
+ wait = start->last + qc->ctp.max_ack_delay
+ + NGX_QUIC_HARDCODED_PTO - now;
if ((ngx_msec_int_t) wait > 0) {
break;
/* move frames group to the end of queue */
ngx_queue_add(&ctx->sent, &range);
- wait = qc->tp.max_ack_delay;
+ wait = qc->ctp.max_ack_delay + NGX_QUIC_HARDCODED_PTO;
} while (q != ngx_queue_sentinel(&ctx->sent));