changeset 8441:db8fe75c9c7a quic

Do not close QUIC sockets in ngx_close_listening_sockets(). This breaks graceful shutdown of QUIC connections in terms of quic-transport.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 23 Jun 2020 11:57:00 +0300
parents f9592e804834
children b9bce2c4fe33
files src/core/ngx_connection.c src/core/ngx_connection.h src/http/ngx_http.c
diffstat 3 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/ngx_connection.c
+++ b/src/core/ngx_connection.c
@@ -1034,6 +1034,10 @@ ngx_close_listening_sockets(ngx_cycle_t 
     ls = cycle->listening.elts;
     for (i = 0; i < cycle->listening.nelts; i++) {
 
+        if (ls[i].quic) {
+            continue;
+        }
+
         c = ls[i].connection;
 
         if (c) {
--- a/src/core/ngx_connection.h
+++ b/src/core/ngx_connection.h
@@ -75,6 +75,7 @@ struct ngx_listening_s {
     unsigned            reuseport:1;
     unsigned            add_reuseport:1;
     unsigned            keepalive:2;
+    unsigned            quic:1;
 
     unsigned            deferred_accept:1;
     unsigned            delete_deferred:1;
--- a/src/http/ngx_http.c
+++ b/src/http/ngx_http.c
@@ -1797,6 +1797,10 @@ ngx_http_add_listening(ngx_conf_t *cf, n
 
     ls->wildcard = addr->opt.wildcard;
 
+#if (NGX_HTTP_SSL)
+    ls->quic = addr->opt.http3;
+#endif
+
     return ls;
 }