QUIC: err_quic_protocol_error

Попробуйте, пожалуйста, ещё вот такой патч:

# HG changeset patch
# User Vladimir Khomutov <vl@wbsrv.ru>
# Date 1712821253 -10800
#      Thu Apr 11 10:40:53 2024 +0300
# Node ID 70ad418a7563f8ee9b4164f16c19442d7747014e
# Parent  430191689657a5e27a6eb62b39e5f26d7ab99a20
imported patch fix_early_close

diff --git a/src/event/quic/ngx_event_quic_streams.c b/src/event/quic/ngx_event_quic_streams.c
--- a/src/event/quic/ngx_event_quic_streams.c
+++ b/src/event/quic/ngx_event_quic_streams.c
@@ -243,7 +243,13 @@ ngx_quic_close_streams(ngx_connection_t 
 ngx_int_t
 ngx_quic_reset_stream(ngx_connection_t *c, ngx_uint_t err)
 {
-    if (!c->quic->parent->ssl->handshaked) {
+    ngx_connection_t       *pc;
+    ngx_quic_connection_t  *qc;
+
+    pc = c->quic->parent;
+    qc = ngx_quic_get_connection(pc);
+
+    if (qc->client && !pc->ssl->handshaked) {
         /* the stream was created early, do not try to send anything */
         return NGX_OK;
     }
@@ -301,11 +307,13 @@ ngx_quic_do_reset_stream(ngx_quic_stream
 ngx_int_t
 ngx_quic_shutdown_stream(ngx_connection_t *c, int how)
 {
-    ngx_connection_t  *pc;
+    ngx_connection_t       *pc;
+    ngx_quic_connection_t  *qc;
 
     pc = c->quic->parent;
-
-    if (!pc->ssl->handshaked) {
+    qc = ngx_quic_get_connection(pc);
+
+    if (qc->client && !pc->ssl->handshaked) {
         /* the stream was created early, do not try to send anything */
         return NGX_OK;
     }
1 Like