From a109706a9e788fc8842a2acf865ff2e8457f7ec1 Mon Sep 17 00:00:00 2001 From: Eric Covener Date: Mon, 21 Nov 2011 03:29:12 +0000 Subject: [PATCH] PR51471: IndexIgnore doesn't work in DirectoryMatch. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1204341 13f79535-47bb-0310-9956-ffa450edef68 --- modules/generators/mod_autoindex.c | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index 1007b8e7db..b192b57946 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -326,7 +326,7 @@ static const char *add_desc(cmd_parms *cmd, void *d, const char *desc, static const char *add_ignore(cmd_parms *cmd, void *d, const char *ext) { - push_item(((autoindex_config_rec *) d)->ign_list, 0, ext, cmd->path, NULL); + push_item(((autoindex_config_rec *) d)->ign_list, cmd->info, ext, cmd->path, NULL); return NULL; } @@ -587,7 +587,7 @@ static const command_rec autoindex_cmds[] = "one or more index options [+|-][]"), AP_INIT_TAKE2("IndexOrderDefault", set_default_order, NULL, DIR_CMD_PERMS, "{Ascending,Descending} {Name,Size,Description,Date}"), - AP_INIT_ITERATE("IndexIgnore", add_ignore, NULL, DIR_CMD_PERMS, + AP_INIT_ITERATE("IndexIgnore", add_ignore, BY_PATH, DIR_CMD_PERMS, "one or more file extensions"), AP_INIT_FLAG("IndexIgnoreReset", ap_set_flag_slot, (void *)APR_OFFSETOF(autoindex_config_rec, ign_noinherit), @@ -876,30 +876,13 @@ static int ignore_entry(autoindex_config_rec *d, char *path) { apr_array_header_t *list = d->ign_list; struct item *items = (struct item *) list->elts; - char *tt; int i; - if ((tt = strrchr(path, '/')) == NULL) { - tt = path; - } - else { - tt++; - } - for (i = 0; i < list->nelts; ++i) { struct item *p = &items[i]; - char *ap; - - if ((ap = strrchr(p->apply_to, '/')) == NULL) { - ap = p->apply_to; - } - else { - ap++; - } #ifndef CASE_BLIND_FILESYSTEM - if (!ap_strcmp_match(path, p->apply_path) - && !ap_strcmp_match(tt, ap)) { + if (!ap_strcmp_match(path, p->apply_to)) { return 1; } #else /* !CASE_BLIND_FILESYSTEM */ @@ -908,8 +891,7 @@ static int ignore_entry(autoindex_config_rec *d, char *path) * a factor of the filesystem involved, but we can't detect that * reliably - so we have to granularise at the OS level. */ - if (!ap_strcasecmp_match(path, p->apply_path) - && !ap_strcasecmp_match(tt, ap)) { + if (!ap_strcasecmp_match(path, p->apply_to)) { return 1; } #endif /* !CASE_BLIND_FILESYSTEM */ -- 2.40.0