]> git.kaiwu.me - nginx.git/commitdiff
error status codes could be cached for next request only,
authorIgor Sysoev <igor@sysoev.ru>
Wed, 4 Aug 2010 12:55:27 +0000 (12:55 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 4 Aug 2010 12:55:27 +0000 (12:55 +0000)
the bug has been introduced in r3712

src/http/ngx_http_file_cache.c

index 94ddbf697c8a72383a77ae734d00e133c566ac9d..c9ecdedb52d3f96b56ce8d153bd7298257aeedab 100644 (file)
@@ -927,10 +927,13 @@ ngx_http_file_cache_free(ngx_http_cache_t *c, ngx_temp_file_t *tf)
     }
 
     if (c->error) {
-        fcn->valid_sec = c->valid_sec;
-        fcn->valid_msec = c->valid_msec;
         fcn->error = c->error;
 
+        if (c->valid_sec) {
+            fcn->valid_sec = c->valid_sec;
+            fcn->valid_msec = c->valid_msec;
+        }
+
     } else if (!fcn->exists && fcn->count == 0 && c->min_uses == 1) {
         ngx_queue_remove(&fcn->queue);
         ngx_rbtree_delete(&cache->sh->rbtree, &fcn->node);