summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_core_module.c
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2025-12-25 01:21:52 +0400
committerSergey Kandaurov <s.kandaurov@f5.com>2026-01-29 14:52:41 +0400
commit3afd85e4b5cbb0c49608b04e06ea7b5ef97b3308 (patch)
tree8951185a6ecd5299f08fe1b0d754a4b2e10988ea /src/http/ngx_http_core_module.c
parentcd12dc4f12489257e851654ec1883cf06fa0b095 (diff)
downloadnginx-3afd85e4b5cbb0c49608b04e06ea7b5ef97b3308.tar.gz
nginx-3afd85e4b5cbb0c49608b04e06ea7b5ef97b3308.tar.bz2
Output chain: clear the last_buf flag unless inherited.
For instance, the last_buf flag is used in the http proxy module when creating HTTP/2 requests to indicate the output is closed. The flag is inherited in ngx_output_chain() to a destination buffer when reading the buffered request body. Then it is used in the proxy output filter to mark the last HTTP/2 DATA frame with END_STREAM. The problem happens when reusing the destination buffer, such as to re-read the buffered request body on next upstream, because this buffer may contain a dirty last_buf value, which breaks sending HTTP/2 request body in multiple output filter calls. The flush and last_in_chain flags are cleared for consistency.
Diffstat (limited to 'src/http/ngx_http_core_module.c')
0 files changed, 0 insertions, 0 deletions