add size, access, and mtime to ngx_walk_tree()
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index 2c365a8..4be17ec 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -445,8 +445,8 @@
 
     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_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_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 @@
                 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 @@
         ngx_free(buf.data);
     }
 
-    if (ctx->data) {
+    if (ctx->alloc) {
         ngx_free(ctx->data);
         ctx->data = prev;
     }