> On 18 Oct 2021, at 15:48, Roman Arutyunyan <[email protected]> wrote: > > # HG changeset patch > # User Roman Arutyunyan <[email protected]> > # Date 1634557691 -10800 > # Mon Oct 18 14:48:11 2021 +0300 > # Branch quic > # Node ID 9018cf33137a19df69e70ee4a274164c226e7cbd > # Parent 8ae53c592c719af4f3ba47dbd85f78be27aaf7db > HTTP/3: send Stream Cancellation instruction. > > As per quic-qpack-21: > > When a stream is reset or reading is abandoned, the decoder emits a > Stream Cancellation instruction. > > Previously the instruction was not sent. Now it's sent when closing QUIC > stream connection if dynamic table capacity is non-zero and eof was not > received from client. The latter condition means that a trailers section > may still be on its way from client and the stream needs to be cancelled. > > 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 > @@ -279,6 +279,14 @@ ngx_http_v3_wait_request_handler(ngx_eve > void > ngx_http_v3_reset_connection(ngx_connection_t *c) > { > + ngx_http_v3_srv_conf_t *h3scf; > + > + h3scf = ngx_http_v3_get_module_srv_conf(c, ngx_http_v3_module); > + > + if (h3scf->max_table_capacity > 0 && !c->read->eof) { > + (void) ngx_http_v3_send_cancel_stream(c, c->quic->id); > + } > + > if (c->timedout) { > ngx_quic_reset_stream(c, NGX_HTTP_V3_ERR_GENERAL_PROTOCOL_ERROR); >
Looks good. -- Sergey Kandaurov _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
