I've found some odd behavior that I've narrowed to a set_handlers call. I've
written an authz cache. On requests with cache misses, the system functions
as one would expect. Once there's a cache hit, the values of DirectoryIndex
are somehow flushed or ignored. Here's the important snippet from httpd.conf
(on multiple lines here for readability):
PerlAuthzHandler
Tivoli::Apache::AuthzCache
Tivoli::Apache::AuthzLDAP
Tivoli::Apache::AuthzCache::manage_cache
Within AuthzCache is the following line that gets called when there's a
cache hit:
$r->set_handlers(PerlAuthzHandler => undef);
If this line is commented out (which of course removes the benefit of the
cache), there are no problems from a client perspective (except for the
slowdown the cache would avoid). With this line, the contents of the
directory are shown on requests that don't specify a file instead of the
associated directory index file.
I'm using apache-1.3.9 and mod_perl-1.21. I checked the mod_perl Changes
log, and there appears to be no changes to set_handlers behavior between
1.21 and the current release.
I'm a bit at a loss for what to check next to narrow the problem aside from
reviewing set_handlers source...
Regards,
Christian
-----------------
Christian Gilmore
Infrastructure & Tools Team Lead
Web & Multimedia Development
Tivoli Systems, Inc.