From 484b633aad6f72c374bb3d2f97b610d609757920 Mon Sep 17 00:00:00 2001 From: Jeff Trawick Date: Thu, 7 Aug 2008 15:12:00 +0000 Subject: [PATCH] mod_dav_fs: Retrieve minimal system information about directory entries when walking a DAV fs, resolving a performance degradation on Windows. PR: 45464 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@683626 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ modules/dav/fs/repos.c | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index ec8aebb18d..76585ba2d4 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,10 @@ Changes with Apache 2.3.0 [ When backported to 2.2.x, remove entry from this file ] + *) mod_dav_fs: Retrieve minimal system information about directory + entries when walking a DAV fs, resolving a performance degradation on + Windows. PR 45464. [Jeff Trawick] + *) mod_cgid: Pass along empty command line arguments from an ISINDEX query that has consecutive '+' characters in the QUERY_STRING, matching the behavior of mod_cgi. diff --git a/modules/dav/fs/repos.c b/modules/dav/fs/repos.c index 8b60f37dec..48d481a30a 100644 --- a/modules/dav/fs/repos.c +++ b/modules/dav/fs/repos.c @@ -1475,10 +1475,8 @@ static dav_error * dav_fs_walker(dav_fs_walker_context *fsctx, int depth) /* append this file onto the path buffer (copy null term) */ dav_buffer_place_mem(pool, &fsctx->path1, dirent.name, len + 1, 0); - - /* ### Optimize me, dirent can give us what we need! */ status = apr_stat(&fsctx->info1.finfo, fsctx->path1.buf, - APR_FINFO_NORM | APR_FINFO_LINK, pool); + APR_FINFO_TYPE | APR_FINFO_LINK, pool); if (status != APR_SUCCESS && status != APR_INCOMPLETE) { /* woah! where'd it go? */ /* ### should have a better error here */ -- 2.40.0