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.

Reply via email to