]> git.kaiwu.me - nginx.git/commit
HTTP/3: allowed QUIC stream connection reuse.
authorRoman Arutyunyan <arut@nginx.com>
Mon, 18 Oct 2021 12:47:06 +0000 (15:47 +0300)
committerRoman Arutyunyan <arut@nginx.com>
Mon, 18 Oct 2021 12:47:06 +0000 (15:47 +0300)
commita6fb8fe85077bd10e11231c70ece803284890520
tree6bc3840c63acaf0c38cb7db79073826c57085edc
parent6118ec73cfef53897d00cc81810ee661321f0057
HTTP/3: allowed QUIC stream connection reuse.

A QUIC stream connection is treated as reusable until first bytes of request
arrive, which is also when the request object is now allocated.  A connection
closed as a result of draining, is reset with the error code
H3_REQUEST_REJECTED.  Such behavior is allowed by quic-http-34:

   Once a request stream has been opened, the request MAY be cancelled
   by either endpoint. Clients cancel requests if the response is no
   longer of interest; servers cancel requests if they are unable to or
   choose not to respond.

   When the server cancels a request without performing any application
   processing, the request is considered "rejected."  The server SHOULD
   abort its response stream with the error code H3_REQUEST_REJECTED.

   The client can treat requests rejected by the server as though they had
   never been sent at all, thereby allowing them to be retried later.
src/http/ngx_http_request.c
src/http/v3/ngx_http_v3.h
src/http/v3/ngx_http_v3_request.c
src/http/v3/ngx_http_v3_streams.c