[PATCH 3 of 5] QUIC: fixed PTO expiration condition

Sergey Kandaurov pluknet at nginx.com
Sat Aug 12 15:08:44 UTC 2023


> On 1 Aug 2023, at 11:45, Roman Arutyunyan <arut at nginx.com> wrote:
> 
> # HG changeset patch
> # User Roman Arutyunyan <arut at nginx.com>
> # Date 1690874519 -14400
> #      Tue Aug 01 11:21:59 2023 +0400
> # Node ID 741deb8ff8257914312ab134f3a0b69256c661f4
> # Parent  a53bbd94a0fa436535ee3bbcb6176befdf47c68a
> 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

Looks good.

-- 
Sergey Kandaurov


More information about the nginx-devel mailing list