diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-01-18 21:04:31 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2007-01-18 21:04:31 +0000 |
commit | f5a359bdec93bb4dbe38c8b13fff957a71b0f896 (patch) | |
tree | c5ba8fb434757b0e584fdf73ec234166ccc49d77 /src/core/ngx_file.c | |
parent | da7281a6daef3a48ea7dd9574dc80234b9b86308 (diff) | |
download | nginx-f5a359bdec93bb4dbe38c8b13fff957a71b0f896.tar.gz nginx-f5a359bdec93bb4dbe38c8b13fff957a71b0f896.zip |
add size, access, and mtime to ngx_walk_tree()
Diffstat (limited to 'src/core/ngx_file.c')
-rw-r--r-- | src/core/ngx_file.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c index 2c365a8bd..4be17ec9a 100644 --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -445,8 +445,8 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree) prev = ctx->data; - if (ctx->size) { - data = ngx_alloc(ctx->size, ctx->log); + if (ctx->alloc) { + data = ngx_alloc(ctx->alloc, ctx->log); if (data == NULL) { goto failed; } @@ -529,6 +529,10 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree) ngx_log_debug1(NGX_LOG_DEBUG_CORE, ctx->log, 0, "tree file \"%s\"", file.data); + ctx->size = ngx_de_size(&dir); + ctx->access = ngx_de_access(&dir); + ctx->mtime = ngx_de_mtime(&dir); + if (ctx->file_handler(ctx, &file) == NGX_ABORT) { goto failed; } @@ -538,6 +542,9 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree) ngx_log_debug1(NGX_LOG_DEBUG_CORE, ctx->log, 0, "tree enter dir \"%s\"", file.data); + ctx->access = ngx_de_access(&dir); + ctx->mtime = ngx_de_mtime(&dir); + if (ctx->pre_tree_handler(ctx, &file) == NGX_ABORT) { goto failed; } @@ -546,6 +553,9 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree) goto failed; } + ctx->access = ngx_de_access(&dir); + ctx->mtime = ngx_de_mtime(&dir); + if (ctx->post_tree_handler(ctx, &file) == NGX_ABORT) { goto failed; } @@ -571,7 +581,7 @@ done: ngx_free(buf.data); } - if (ctx->data) { + if (ctx->alloc) { ngx_free(ctx->data); ctx->data = prev; } |