summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_file_cache.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-10-07 12:55:58 +0000
committerIgor Sysoev <igor@sysoev.ru>2009-10-07 12:55:58 +0000
commit136dd8d1e692de0f5b96c6f1da51188737d630b0 (patch)
treebcecb503a3c4be424b1af67de90726a36431ea17 /src/http/ngx_http_file_cache.c
parent9e5463364566f855a0f0b7d7725a4014995bd5e3 (diff)
downloadnginx-136dd8d1e692de0f5b96c6f1da51188737d630b0.tar.gz
nginx-136dd8d1e692de0f5b96c6f1da51188737d630b0.tar.bz2
use real file cache length, this fixes cache size counting for responses
without "Content-Length" header and 304 responses.
Diffstat (limited to 'src/http/ngx_http_file_cache.c')
-rw-r--r--src/http/ngx_http_file_cache.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c
index 4caca919a..0a9b761cd 100644
--- a/src/http/ngx_http_file_cache.c
+++ b/src/http/ngx_http_file_cache.c
@@ -692,7 +692,7 @@ ngx_http_file_cache_set_header(ngx_http_request_t *r, u_char *buf)
void
ngx_http_file_cache_update(ngx_http_request_t *r, ngx_temp_file_t *tf)
{
- off_t size;
+ off_t size, length;
ngx_int_t rc;
ngx_file_uniq_t uniq;
ngx_file_info_t fi;
@@ -714,6 +714,7 @@ ngx_http_file_cache_update(ngx_http_request_t *r, ngx_temp_file_t *tf)
cache = c->file_cache;
uniq = 0;
+ length = 0;
ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
"http file cache rename: \"%s\" to \"%s\"",
@@ -738,10 +739,11 @@ ngx_http_file_cache_update(ngx_http_request_t *r, ngx_temp_file_t *tf)
} else {
uniq = ngx_file_uniq(&fi);
+ length = ngx_file_size(&fi);
}
}
- size = (c->length + cache->bsize - 1) / cache->bsize;
+ size = (length + cache->bsize - 1) / cache->bsize;
ngx_shmtx_lock(&cache->shpool->mutex);
@@ -751,7 +753,7 @@ ngx_http_file_cache_update(ngx_http_request_t *r, ngx_temp_file_t *tf)
size = size - (c->node->length + cache->bsize - 1) / cache->bsize;
- c->node->length = c->length;
+ c->node->length = length;
cache->sh->size += size;