mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
HTTP/3: reset streams with incomplete responses or timeouts.
This prevents client from closing the QUIC connection due to response parse error.
This commit is contained in:
parent
b6b2a45fb6
commit
38d56f4ccd
@ -3746,6 +3746,12 @@ ngx_http_free_request(ngx_http_request_t *r, ngx_int_t rc)
|
||||
if (r->connection->timedout) {
|
||||
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
|
||||
|
||||
#if (NGX_HTTP_V3)
|
||||
if (r->connection->quic) {
|
||||
(void) ngx_quic_reset_stream(r->connection,
|
||||
NGX_HTTP_V3_ERR_GENERAL_PROTOCOL_ERROR);
|
||||
} else
|
||||
#endif
|
||||
if (clcf->reset_timedout_connection) {
|
||||
linger.l_onoff = 1;
|
||||
linger.l_linger = 0;
|
||||
@ -3757,6 +3763,14 @@ ngx_http_free_request(ngx_http_request_t *r, ngx_int_t rc)
|
||||
"setsockopt(SO_LINGER) failed");
|
||||
}
|
||||
}
|
||||
|
||||
} else if (!r->response_sent) {
|
||||
#if (NGX_HTTP_V3)
|
||||
if (r->connection->quic) {
|
||||
(void) ngx_quic_reset_stream(r->connection,
|
||||
NGX_HTTP_V3_ERR_INTERNAL_ERROR);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/* the various request strings were allocated from r->pool */
|
||||
|
Loading…
Reference in New Issue
Block a user