[nginx] QUIC: fixed PTO expiration condition.

Roman Arutyunyan arut at nginx.com
Mon Aug 14 14:01:14 UTC 2023


details:   https://hg.nginx.org/nginx/rev/7e8ee4b7cbf4
branches:  
changeset: 9142:7e8ee4b7cbf4
user:      Roman Arutyunyan <arut at nginx.com>
date:      Tue Aug 01 11:21:59 2023 +0400
description:
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().

diffstat:

 src/event/quic/ngx_event_quic_ack.c |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diffs (12 lines):

diff -r 5d1e7c74aadf -r 7e8ee4b7cbf4 src/event/quic/ngx_event_quic_ack.c
--- a/src/event/quic/ngx_event_quic_ack.c	Tue Aug 01 11:20:04 2023 +0400
+++ b/src/event/quic/ngx_event_quic_ack.c	Tue Aug 01 11:21:59 2023 +0400
@@ -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


More information about the nginx-devel mailing list