mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
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.
This commit is contained in:
parent
a6fb8fe850
commit
5c99f43e6f
@ -279,6 +279,14 @@ ngx_http_v3_wait_request_handler(ngx_event_t *rev)
|
|||||||
void
|
void
|
||||||
ngx_http_v3_reset_connection(ngx_connection_t *c)
|
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) {
|
if (c->timedout) {
|
||||||
ngx_quic_reset_stream(c, NGX_HTTP_V3_ERR_GENERAL_PROTOCOL_ERROR);
|
ngx_quic_reset_stream(c, NGX_HTTP_V3_ERR_GENERAL_PROTOCOL_ERROR);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user