[Remove entries to the current 2.0 section below, when backported]
+ *) mod_autoindex: Add ShowForbidden to IndexOptions to list files
+ that are not shown because the subrequest returned 401 or 403.
+ PR 10575. [Paul Querna]
+
*) util_ldap: Switched the lock types on the shared memory cache
from thread reader/writer locks to global mutexes in order to
provide cross process cache protection. [Brad Nicholes]
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
-<!-- $Revision: 1.24 $ -->
+<!-- $Revision: 1.25 $ -->
<!--
Copyright 2002-2004 The Apache Software Foundation
then httpd will read the document for the value of the
<code>title</code> element. This is CPU and disk intensive.</dd>
+ <dt><a name="indexoptions.showforbidden"
+ id="indexoptions.showforbidden">ShowForbidden</a></dt>
+
+ <dd>If specified, Apache will show files normally hidden because
+ the subrequest returned HTTP_UNAUTHORIZED or HTTP_FORBIDDEN</dd>
+
<dt><a name="indexoptions.suppresscolumnsorting"
id="indexoptions.suppresscolumnsorting"
>SuppressColumnSorting</a></dt>
#define IGNORE_CLIENT (1 << 15)
#define IGNORE_CASE (1 << 16)
#define EMIT_XHTML (1 << 17)
+#define SHOW_FORBIDDEN (1 << 18)
#define K_NOADJUST 0
#define K_ADJUST 1
else if (!strcasecmp(w, "XHTML")) {
option = EMIT_XHTML;
}
+ else if (!strcasecmp(w, "ShowForbidden")) {
+ option = SHOW_FORBIDDEN;
+ }
else if (!strcasecmp(w, "None")) {
if (action != '\0') {
return "Cannot combine '+' or '-' with 'None' keyword";
{
request_rec *rr;
struct ent *p;
+ int show_forbidden = 0;
/* Dot is ignored, Parent is handled by make_parent_entry() */
if ((dirent->name[0] == '.') && (!dirent->name[1]
return (NULL);
}
+ if((autoindex_opts & SHOW_FORBIDDEN)
+ && (rr->status == HTTP_UNAUTHORIZED || rr->status == HTTP_FORBIDDEN)) {
+ show_forbidden = 1;
+ }
+
if ((rr->finfo.filetype != APR_DIR && rr->finfo.filetype != APR_REG)
|| !(rr->status == OK || ap_is_HTTP_SUCCESS(rr->status)
- || ap_is_HTTP_REDIRECT(rr->status))) {
+ || ap_is_HTTP_REDIRECT(rr->status)
+ || show_forbidden == 1)) {
ap_destroy_sub_req(rr);
return (NULL);
}