You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Christian Gilmore <Ch...@tivoli.com> on 2000/06/25 21:27:05 UTC

set_handlers() bug?

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.


Re: set_handlers() bug?

Posted by Eric Cholet <ch...@logilune.com>.
> 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.

can you try

    $r->set_handlers(PerlAuthzHandler => [\&OK];

> 
> 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

--
Eric