mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 03:17:17 +08:00
Cache: fix for sending of empty responses.
Revert wrong fix for empty responses introduced in 0.8.31 and apply new one, rewritten to match things done by static module as close as possible.
This commit is contained in:
parent
4a3884ae56
commit
84c58a30e6
@ -853,6 +853,10 @@ ngx_http_cache_send(ngx_http_request_t *r)
|
||||
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
|
||||
"http file cache send: %s", c->file.name.data);
|
||||
|
||||
if (r != r->main && c->length - c->body_start == 0) {
|
||||
return ngx_http_send_header(r);
|
||||
}
|
||||
|
||||
/* we need to allocate all before the header would be sent */
|
||||
|
||||
b = ngx_pcalloc(r->pool, sizeof(ngx_buf_t));
|
||||
@ -865,8 +869,6 @@ ngx_http_cache_send(ngx_http_request_t *r)
|
||||
return NGX_HTTP_INTERNAL_SERVER_ERROR;
|
||||
}
|
||||
|
||||
r->header_only = (c->length - c->body_start) == 0;
|
||||
|
||||
rc = ngx_http_send_header(r);
|
||||
|
||||
if (rc == NGX_ERROR || rc > NGX_OK || r->header_only) {
|
||||
@ -876,7 +878,7 @@ ngx_http_cache_send(ngx_http_request_t *r)
|
||||
b->file_pos = c->body_start;
|
||||
b->file_last = c->length;
|
||||
|
||||
b->in_file = 1;
|
||||
b->in_file = (c->length - c->body_start) ? 1: 0;
|
||||
b->last_buf = (r == r->main) ? 1: 0;
|
||||
b->last_in_chain = 1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user