aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/http/ngx_http_file_cache.c4
-rw-r--r--src/http/ngx_http_upstream.c38
2 files changed, 14 insertions, 28 deletions
diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c
index fb1ab9854..03cd268b2 100644
--- a/src/http/ngx_http_file_cache.c
+++ b/src/http/ngx_http_file_cache.c
@@ -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;
}
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
index 914d72c84..8f1ee42c3 100644
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -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;