Upstream: fix $upstream_cache_last_modified variable.

Due to the u->headers_in.last_modified_time not being correctly initialized,
this variable was evaluated to "Thu, 01 Jan 1970 00:00:00 GMT" for responses
cached without the "Last-Modified" header which resulted in subsequent proxy
requests being sent with "If-Modified-Since: Thu, 01 Jan 1970 00:00:00 GMT"
header.

Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
This commit is contained in:
Piotr Sikora 2014-10-01 15:48:53 -07:00
parent 840b347bb2
commit 4a2fba2d46

View File

@ -441,6 +441,7 @@ ngx_http_upstream_create(ngx_http_request_t *r)
#endif #endif
u->headers_in.content_length_n = -1; u->headers_in.content_length_n = -1;
u->headers_in.last_modified_time = -1;
return NGX_OK; return NGX_OK;
} }
@ -885,6 +886,7 @@ ngx_http_upstream_cache_send(ngx_http_request_t *r, ngx_http_upstream_t *u)
ngx_memzero(&u->headers_in, sizeof(ngx_http_upstream_headers_in_t)); ngx_memzero(&u->headers_in, sizeof(ngx_http_upstream_headers_in_t));
u->headers_in.content_length_n = -1; u->headers_in.content_length_n = -1;
u->headers_in.last_modified_time = -1;
if (ngx_list_init(&u->headers_in.headers, r->pool, 8, if (ngx_list_init(&u->headers_in.headers, r->pool, 8,
sizeof(ngx_table_elt_t)) sizeof(ngx_table_elt_t))
@ -1582,6 +1584,7 @@ ngx_http_upstream_reinit(ngx_http_request_t *r, ngx_http_upstream_t *u)
ngx_memzero(&u->headers_in, sizeof(ngx_http_upstream_headers_in_t)); ngx_memzero(&u->headers_in, sizeof(ngx_http_upstream_headers_in_t));
u->headers_in.content_length_n = -1; u->headers_in.content_length_n = -1;
u->headers_in.last_modified_time = -1;
if (ngx_list_init(&u->headers_in.headers, r->pool, 8, if (ngx_list_init(&u->headers_in.headers, r->pool, 8,
sizeof(ngx_table_elt_t)) sizeof(ngx_table_elt_t))