mirror of
https://github.com/apache/httpd.git
synced 2025-08-06 11:06:17 +00:00
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
This commit is contained in:
@ -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 */
|
||||
|
Reference in New Issue
Block a user