aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/proxy/ngx_http_proxy_upstream.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/modules/proxy/ngx_http_proxy_upstream.c')
-rw-r--r--src/http/modules/proxy/ngx_http_proxy_upstream.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/http/modules/proxy/ngx_http_proxy_upstream.c b/src/http/modules/proxy/ngx_http_proxy_upstream.c
index bd4befd76..d27975919 100644
--- a/src/http/modules/proxy/ngx_http_proxy_upstream.c
+++ b/src/http/modules/proxy/ngx_http_proxy_upstream.c
@@ -1199,14 +1199,16 @@ static void ngx_http_proxy_send_response(ngx_http_proxy_ctx_t *p)
ep->preread_size = p->header_in->last - p->header_in->pos;
- ep->hunk_to_file = ngx_calloc_hunk(r->pool);
- if (ep->preread_hunks == NULL) {
- ngx_http_proxy_finalize_request(p, 0);
- return;
+ if (p->cachable) {
+ ep->hunk_to_file = ngx_calloc_hunk(r->pool);
+ if (ep->hunk_to_file == NULL) {
+ ngx_http_proxy_finalize_request(p, 0);
+ return;
+ }
+ ep->hunk_to_file->pos = p->header_in->start;
+ ep->hunk_to_file->last = p->header_in->pos;
+ ep->hunk_to_file->type = NGX_HUNK_IN_MEMORY|NGX_HUNK_TEMP;
}
- ep->hunk_to_file->pos = p->header_in->start;
- ep->hunk_to_file->last = p->header_in->pos;
- ep->hunk_to_file->type = NGX_HUNK_IN_MEMORY|NGX_HUNK_TEMP;
if (ngx_event_flags & NGX_USE_AIO_EVENT) {
/* the posted aio operation can currupt a shadow buffer */