Mercurial > hg > nginx
comparison src/http/ngx_http_upstream.c @ 8521:a748095bf94e quic
HTTP/3: special handling of client errors in the upstream module.
The function ngx_http_upstream_check_broken_connection() terminates the HTTP/1
request if client sends eof. For QUIC (including HTTP/3) the c->write->error
flag is now checked instead. This flag is set when the entire QUIC connection
is closed or STOP_SENDING was received from client.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 20 Aug 2020 12:33:00 +0300 |
parents | 05e42236e95b |
children | 0875101c08f7 |
comparison
equal
deleted
inserted
replaced
8520:357b8afe915e | 8521:a748095bf94e |
---|---|
1343 if (r->stream) { | 1343 if (r->stream) { |
1344 return; | 1344 return; |
1345 } | 1345 } |
1346 #endif | 1346 #endif |
1347 | 1347 |
1348 #if (NGX_HTTP_QUIC) | |
1349 | |
1350 if (c->qs) { | |
1351 if (c->write->error) { | |
1352 ngx_http_upstream_finalize_request(r, u, | |
1353 NGX_HTTP_CLIENT_CLOSED_REQUEST); | |
1354 } | |
1355 | |
1356 return; | |
1357 } | |
1358 | |
1359 #endif | |
1360 | |
1348 #if (NGX_HAVE_KQUEUE) | 1361 #if (NGX_HAVE_KQUEUE) |
1349 | 1362 |
1350 if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) { | 1363 if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) { |
1351 | 1364 |
1352 if (!ev->pending_eof) { | 1365 if (!ev->pending_eof) { |