]> granicus.if.org Git - apache/commitdiff
rollback recent autoindex changes (1204355:1204306)
authorEric Covener <covener@apache.org>
Mon, 21 Nov 2011 05:13:45 +0000 (05:13 +0000)
committerEric Covener <covener@apache.org>
Mon, 21 Nov 2011 05:13:45 +0000 (05:13 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1204357 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
docs/manual/mod/mod_autoindex.html.en
docs/manual/mod/mod_autoindex.xml
docs/manual/upgrading.html.en
docs/manual/upgrading.xml
modules/generators/mod_autoindex.c

diff --git a/CHANGES b/CHANGES
index bf62628551216cd84476d1810e3578438a0cd461..91db4c5eb941e5041acf39b80aaedd78bb39d0f3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,15 +1,6 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.4.0
 
-  *) mod_autoindex: Start respecting IndexIgnore inside DirectoryMatch.
-     PR51471 [Eric Covener]
-
-  *) mod_autoindex: Stop implicitly prefixing AddDescription "file" arguments 
-     that contain both slashes and wild-cards with a '*'.  [Eric Covener]
-
-  *) mod_autoindex: Allow AddDescription "file" arguments to be an
-     absolute path as previously documented. PR39923 [Eric Covener]
-
   *) mod_cache_disk: Remove the unnecessary intermediate brigade while
      writing to disk. Fixes a problem where mod_disk_cache was leaving
      buckets in the intermediate brigade and not passing them to out on
index 66e565210802a774b01533c45addb7f71680e2da..8c4e6aefa12fc9ef670a68f7c4b5a7dd1febbc20 100644 (file)
@@ -323,10 +323,6 @@ icon selected by MIME content-type</td></tr>
       element (such as cutting off the end of a bolded phrase), the
       results may affect the rest of the directory listing.</p>
     </div>
-    <div class="note"><h3>Compatibility</h3>
-    <p> Prior to version 2.4, any wild-card expression that contained slashes 
-    was treated as if it started with a '*'.</p>
-    </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
index ef3a215e4a94135bc71bb1ed19dc5b009a0af65c..ab5f9acd64a31219b3623cc3a1be6c35a2e4cc85 100644 (file)
@@ -314,10 +314,6 @@ icon selected by MIME content-type</description>
       element (such as cutting off the end of a bolded phrase), the
       results may affect the rest of the directory listing.</p>
     </note>
-    <note><title>Compatibility</title>
-    <p> Prior to version 2.4, any wild-card expression that contained slashes 
-    was treated as if it started with a '*'.</p>
-    </note>
 </usage>
 </directivesynopsis>
 
index 844edd9938f85a60030e482e0338cb35282ab9d7..a66e63245258db3cb53b2ef31fb73847b5dafea3 100644 (file)
       display descriptions for .xhtml files, which were previously
       ignored.</li>
 
-      <li><code class="module"><a href="./mod/mod_autoindex.html">mod_autoindex</a></code>: AddDescription 'file' arguments
-      that contain wild-cards and slashes are no longer implicitly treated 
-      as if they began with a '*' character.</li>
-
       <li><code class="module"><a href="./mod/mod_ssl.html">mod_ssl</a></code>: The default format of the <code>*_DN</code>
       variables has changed. The old format can still be used with the new
       <code>LegacyDNStringFormat</code> argument to <code class="directive"><a href="./mod/mod_ssl.html#ssloptions">SSLOptions</a></code>. The SSLv2 protocol is
index 876fa6042368880d73dc417f1d2c2d1659984f35..fab9d1cf3b96973d1ae94422f987508946aed14d 100644 (file)
       display descriptions for .xhtml files, which were previously
       ignored.</li>
 
-      <li><module>mod_autoindex</module>: AddDescription 'file' arguments
-      that contain wild-cards and slashes are no longer implicitly treated 
-      as if they began with a '*' character.</li>
-
       <li><module>mod_ssl</module>: The default format of the <code>*_DN</code>
       variables has changed. The old format can still be used with the new
       <code>LegacyDNStringFormat</code> argument to <directive
index b192b57946d68404373779f429e6fc4bd1c33ddd..b6888673634379722d566c17150cab88a70f39c6 100644 (file)
@@ -300,7 +300,6 @@ static const char *add_desc(cmd_parms *cmd, void *d, const char *desc,
     autoindex_config_rec *dcfg = (autoindex_config_rec *) d;
     ai_desc_t *desc_entry;
     char *prefix = "";
-    int is_abspath = ap_os_is_path_absolute(cmd->temp_pool, to);
 
     desc_entry = (ai_desc_t *) apr_array_push(dcfg->desc_list);
     desc_entry->full_path = (ap_strchr_c(to, '/') == NULL) ? 0 : 1;
@@ -308,12 +307,7 @@ static const char *add_desc(cmd_parms *cmd, void *d, const char *desc,
                              || desc_entry->full_path
                              || apr_fnmatch_test(to));
     if (desc_entry->wildcards) {
-        if (desc_entry->full_path && !is_abspath) { 
-            prefix = "*/";
-        }
-        else if (WILDCARDS_REQUIRED) { 
-            prefix = "*";
-        }
+        prefix = desc_entry->full_path ? "*/" : "*";
         desc_entry->pattern = apr_pstrcat(dcfg->desc_list->pool,
                                           prefix, to, "*", NULL);
     }
@@ -326,7 +320,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, cmd->info, ext, cmd->path, NULL);
+    push_item(((autoindex_config_rec *) d)->ign_list, 0, ext, cmd->path, NULL);
     return NULL;
 }
 
@@ -587,7 +581,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, BY_PATH, DIR_CMD_PERMS,
+    AP_INIT_ITERATE("IndexIgnore", add_ignore, NULL, 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,13 +870,30 @@ 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_to)) {
+        if (!ap_strcmp_match(path, p->apply_path)
+            && !ap_strcmp_match(tt, ap)) {
             return 1;
         }
 #else  /* !CASE_BLIND_FILESYSTEM */
@@ -891,7 +902,8 @@ 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_to)) {
+        if (!ap_strcasecmp_match(path, p->apply_path)
+            && !ap_strcasecmp_match(tt, ap)) {
             return 1;
         }
 #endif /* !CASE_BLIND_FILESYSTEM */