mirror of
https://github.com/nginx/nginx.git
synced 2025-01-23 23:03:18 -06:00
fix a broken cached response if bypass/no_cache directive values are different,
the bug has been introduced in r3700
This commit is contained in:
parent
768f7a05d2
commit
0d6283918f
@ -174,8 +174,6 @@ ngx_http_file_cache_create(ngx_http_request_t *r)
|
||||
ngx_pool_cleanup_t *cln;
|
||||
ngx_http_file_cache_t *cache;
|
||||
|
||||
ngx_http_file_cache_create_key(r);
|
||||
|
||||
c = r->cache;
|
||||
cache = c->file_cache;
|
||||
|
||||
@ -906,7 +904,7 @@ ngx_http_file_cache_free(ngx_http_cache_t *c, ngx_temp_file_t *tf)
|
||||
ngx_http_file_cache_t *cache;
|
||||
ngx_http_file_cache_node_t *fcn;
|
||||
|
||||
if (c->updated) {
|
||||
if (c->updated || c->node == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -641,19 +641,6 @@ ngx_http_upstream_cache(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
||||
|
||||
if (c == NULL) {
|
||||
|
||||
switch (ngx_http_test_predicates(r, u->conf->cache_bypass)) {
|
||||
|
||||
case NGX_ERROR:
|
||||
return NGX_ERROR;
|
||||
|
||||
case NGX_DECLINED:
|
||||
u->cache_status = NGX_HTTP_CACHE_BYPASS;
|
||||
return NGX_DECLINED;
|
||||
|
||||
default: /* NGX_OK */
|
||||
break;
|
||||
}
|
||||
|
||||
if (!(r->method & u->conf->cache_methods)) {
|
||||
return NGX_DECLINED;
|
||||
}
|
||||
@ -674,6 +661,19 @@ ngx_http_upstream_cache(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
||||
|
||||
ngx_http_file_cache_create_key(r);
|
||||
|
||||
switch (ngx_http_test_predicates(r, u->conf->cache_bypass)) {
|
||||
|
||||
case NGX_ERROR:
|
||||
return NGX_ERROR;
|
||||
|
||||
case NGX_DECLINED:
|
||||
u->cache_status = NGX_HTTP_CACHE_BYPASS;
|
||||
return NGX_DECLINED;
|
||||
|
||||
default: /* NGX_OK */
|
||||
break;
|
||||
}
|
||||
|
||||
u->cacheable = 1;
|
||||
|
||||
c = r->cache;
|
||||
@ -2135,18 +2135,6 @@ ngx_http_upstream_send_response(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
||||
|
||||
if (u->cache_status == NGX_HTTP_CACHE_BYPASS) {
|
||||
|
||||
if (ngx_http_file_cache_new(r) != NGX_OK) {
|
||||
ngx_http_upstream_finalize_request(r, u, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
if (u->create_key(r) != NGX_OK) {
|
||||
ngx_http_upstream_finalize_request(r, u, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
/* TODO: add keys */
|
||||
|
||||
r->cache->min_uses = u->conf->cache_min_uses;
|
||||
r->cache->body_start = u->conf->buffer_size;
|
||||
r->cache->file_cache = u->conf->cache->data;
|
||||
|
Loading…
Reference in New Issue
Block a user