]> git.kaiwu.me - nginx.git/commitdiff
QUIC: do not send MAX_STREAMS in shutdown state.
authorRoman Arutyunyan <arut@nginx.com>
Wed, 7 Sep 2022 09:12:56 +0000 (13:12 +0400)
committerRoman Arutyunyan <arut@nginx.com>
Wed, 7 Sep 2022 09:12:56 +0000 (13:12 +0400)
No more streams are expected from client.

src/event/quic/ngx_event_quic_streams.c

index 999bfccef6a0f4ca8fba0343138ddfa0329466a7..212d7edb39f4d7d9e83b7521d238cae7f118ad29 100644 (file)
@@ -1072,6 +1072,15 @@ ngx_quic_close_stream(ngx_quic_stream_t *qs)
         return NGX_OK;
     }
 
+    if (!pc->reusable && ngx_quic_can_shutdown(pc) == NGX_OK) {
+        ngx_reusable_connection(pc, 1);
+    }
+
+    if (qc->shutdown) {
+        ngx_quic_shutdown_quic(pc);
+        return NGX_OK;
+    }
+
     if ((qs->id & NGX_QUIC_STREAM_SERVER_INITIATED) == 0) {
         frame = ngx_quic_alloc_frame(pc);
         if (frame == NULL) {
@@ -1093,14 +1102,6 @@ ngx_quic_close_stream(ngx_quic_stream_t *qs)
         ngx_quic_queue_frame(qc, frame);
     }
 
-    if (!pc->reusable && ngx_quic_can_shutdown(pc) == NGX_OK) {
-        ngx_reusable_connection(pc, 1);
-    }
-
-    if (qc->shutdown) {
-        ngx_quic_shutdown_quic(pc);
-    }
-
     return NGX_OK;
 }