[PATCH 5 of 6] QUIC: simplified setting close timer when closing connection

Roman Arutyunyan arut at nginx.com
Thu Sep 14 10:17:08 UTC 2023


# HG changeset patch
# User Roman Arutyunyan <arut at nginx.com>
# Date 1694686520 -14400
#      Thu Sep 14 14:15:20 2023 +0400
# Node ID 54829df980cc8d5975280f355f2a8c1a9cff2e79
# Parent  f92cac470cd7cbd0fd6ff85d11ed6dfa6562a6f3
QUIC: simplified setting close timer when closing connection.

Previously, the timer was never reset due to an explicit check.  The check was
added in 36b59521a41c as part of connection close simplification.  The reason
was to retain the earliest timeout.  However, the timeouts are all the same
while QUIC handshake is in progress and resetting the timer for the same value
has no performance implications.  After handshake completion there's only
application level.  The change removes the check.

diff --git a/src/event/quic/ngx_event_quic.c b/src/event/quic/ngx_event_quic.c
--- a/src/event/quic/ngx_event_quic.c
+++ b/src/event/quic/ngx_event_quic.c
@@ -537,7 +537,7 @@ ngx_quic_close_connection(ngx_connection
                 qc->error_level = ctx->level;
                 (void) ngx_quic_send_cc(c);
 
-                if (rc == NGX_OK && !qc->close.timer_set) {
+                if (rc == NGX_OK) {
                     ngx_add_timer(&qc->close, 3 * ngx_quic_pto(c, ctx));
                 }
             }


More information about the nginx-devel mailing list