# HG changeset patch # User Roman Arutyunyan # Date 1690874519 -14400 # Node ID 7e8ee4b7cbf4e053c4125f6334c02becf7766632 # Parent 5d1e7c74aadf4bda0a169b5276deebb9665c9038 QUIC: fixed PTO expiration condition. Previously, PTO handler analyzed the first packet in the sent queue for the timeout expiration. However, the last sent packet should be analyzed instead. An example is timeout calculation in ngx_quic_set_lost_timer(). diff --git a/src/event/quic/ngx_event_quic_ack.c b/src/event/quic/ngx_event_quic_ack.c --- a/src/event/quic/ngx_event_quic_ack.c +++ b/src/event/quic/ngx_event_quic_ack.c @@ -840,7 +840,7 @@ ngx_quic_pto_handler(ngx_event_t *ev) continue; } - q = ngx_queue_head(&ctx->sent); + q = ngx_queue_last(&ctx->sent); f = ngx_queue_data(q, ngx_quic_frame_t, queue); if (f->pnum <= ctx->largest_ack