[PATCH 2 of 3] HTTP/3: trigger 400 (Bad Request) on stream error while blocked

Roman Arutyunyan arut at nginx.com
Thu Jan 5 15:31:35 UTC 2023


 src/http/v3/ngx_http_v3_request.c |  2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


# HG changeset patch
# User Roman Arutyunyan <arut at nginx.com>
# Date 1672928146 -14400
#      Thu Jan 05 18:15:46 2023 +0400
# Branch quic
# Node ID c44c0a06c4c23e599b164a768d6999880411c2e0
# Parent  480300240a4ea0e03e656039b9498c78b5adc21e
HTTP/3: trigger 400 (Bad Request) on stream error while blocked.

Previously, stream was closed with NGX_HTTP_CLOSE.  However, in a similar case
when recv() returns eof or error, status 400 is triggered.

diff --git a/src/http/v3/ngx_http_v3_request.c b/src/http/v3/ngx_http_v3_request.c
--- a/src/http/v3/ngx_http_v3_request.c
+++ b/src/http/v3/ngx_http_v3_request.c
@@ -554,7 +554,7 @@ ngx_http_v3_process_request(ngx_event_t 
 
         if (rc == NGX_BUSY) {
             if (rev->error) {
-                ngx_http_close_request(r, NGX_HTTP_CLOSE);
+                ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
                 break;
             }
 


More information about the nginx-devel mailing list