From f39014c128824377cb88f28c9b92e167dade1b3f Mon Sep 17 00:00:00 2001 From: Tjerk Meesters Date: Mon, 27 Jan 2014 14:54:22 +0800 Subject: [PATCH 1/2] attempt fallback resource if directory index fails Attempt fallback if fixup_dir() returns anything but OK instead of returning DECLINED. --- modules/mappers/mod_dir.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/mappers/mod_dir.c b/modules/mappers/mod_dir.c index b076937e859..3393e463816 100644 --- a/modules/mappers/mod_dir.c +++ b/modules/mappers/mod_dir.c @@ -388,7 +388,14 @@ static int dir_fixups(request_rec *r) { if (r->finfo.filetype == APR_DIR) { /* serve up a directory */ - return fixup_dir(r); + int res = fixup_dir(r); + + if (res != OK) { + /* use fallback */ + return fixup_dflt(r); + } + + return res; } else if ((r->finfo.filetype == APR_NOFILE) && (r->handler == NULL)) { /* No handler and nothing in the filesystem - use fallback */ From 6e848311261a5f77c2bfa765b43c17d982381bbf Mon Sep 17 00:00:00 2001 From: Tjerk Meesters Date: Sat, 1 Feb 2014 07:53:33 +0800 Subject: [PATCH 2/2] Eliminated the temporary variable --- modules/mappers/mod_dir.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/modules/mappers/mod_dir.c b/modules/mappers/mod_dir.c index 3393e463816..bc572bc9036 100644 --- a/modules/mappers/mod_dir.c +++ b/modules/mappers/mod_dir.c @@ -388,14 +388,11 @@ static int dir_fixups(request_rec *r) { if (r->finfo.filetype == APR_DIR) { /* serve up a directory */ - int res = fixup_dir(r); - - if (res != OK) { - /* use fallback */ - return fixup_dflt(r); + if (fixup_dir(r) != OK) { + return fixup_dflt(r); + } else { + return OK; } - - return res; } else if ((r->finfo.filetype == APR_NOFILE) && (r->handler == NULL)) { /* No handler and nothing in the filesystem - use fallback */