# HG changeset patch # User Roman Arutyunyan # Date 1422895112 -10800 # Node ID 863d9de1e62bdaf1a8143268016f505681d65182 # Parent bcdfc39bf44dade60fedb7b200ca5d3d10bfb22a Core: supported directory skipping in ngx_walk_tree(). If pre_tree_handler() returns NGX_DECLINED, the directory is ignored. diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c --- a/src/core/ngx_file.c +++ b/src/core/ngx_file.c @@ -1047,10 +1047,18 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_s ctx->access = ngx_de_access(&dir); ctx->mtime = ngx_de_mtime(&dir); - if (ctx->pre_tree_handler(ctx, &file) == NGX_ABORT) { + rc = ctx->pre_tree_handler(ctx, &file); + + if (rc == NGX_ABORT) { goto failed; } + if (rc == NGX_DECLINED) { + ngx_log_debug1(NGX_LOG_DEBUG_CORE, ctx->log, 0, + "tree skip dir \"%s\"", file.data); + continue; + } + if (ngx_walk_tree(ctx, &file) == NGX_ABORT) { goto failed; }