mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
Event pipe: fixed writing cache header to a temp file.
With previous code the p->temp_file->offset wasn't adjusted if a temp file was written by the code in ngx_event_pipe_write_to_downstream() after an EOF, resulting in cache not being used with empty scgi and uwsgi responses with Content-Length set to 0. Fix it to call ngx_event_pipe_write_chain_to_temp_file() there instead of calling ngx_write_chain_to_temp_file() directly.
This commit is contained in:
parent
f52042498d
commit
be6fbbb47e
@ -454,7 +454,7 @@ ngx_event_pipe_write_to_downstream(ngx_event_pipe_t *p)
|
||||
size_t bsize;
|
||||
ngx_int_t rc;
|
||||
ngx_uint_t flush, flushed, prev_last_shadow;
|
||||
ngx_chain_t *out, **ll, *cl, file;
|
||||
ngx_chain_t *out, **ll, *cl;
|
||||
ngx_connection_t *downstream;
|
||||
|
||||
downstream = p->downstream;
|
||||
@ -514,13 +514,10 @@ ngx_event_pipe_write_to_downstream(ngx_event_pipe_t *p)
|
||||
}
|
||||
|
||||
if (p->cacheable && p->buf_to_file) {
|
||||
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, p->log, 0,
|
||||
"pipe write chain");
|
||||
|
||||
file.buf = p->buf_to_file;
|
||||
file.next = NULL;
|
||||
|
||||
if (ngx_write_chain_to_temp_file(p->temp_file, &file)
|
||||
== NGX_ERROR)
|
||||
{
|
||||
if (ngx_event_pipe_write_chain_to_temp_file(p) == NGX_ABORT) {
|
||||
return NGX_ABORT;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user