So, I've done a bit more debugging. It looks like set_handlers is all
befuddled. I have the below code:

  my $handlers = $r->get_handlers('PerlAuthzHandler');
  foreach (@$handlers) {
    $r->log->debug("handler: (Pre) PerlAuthzHandler $_ next in line");
  }
  # Per Eric Cholet
  # $r->set_handlers(PerlAuthzHandler => [\&OK]);
  $r->set_handlers(PerlAuthzHandler => [\&Tivoli::Apache::AuthzCache,
\&OK]);
  #$r->set_handlers(PerlAuthzHandler => undef);
  $handlers = $r->get_handlers('PerlAuthzHandler');
  foreach (@$handlers) {
    $r->log->debug("handler: (Post) PerlAuthzHandler $_ next in line");
  }
  return OK;

[Mon Jun 26 10:30:58 2000] [debug]
/opt/apache/dw3.tivoli.com/81/lib/perl/Tivoli/Apache/AuthzCache.pm(132):
[client 146.84.34.143] handler: (Pre) PerlAuthzHandler
Tivoli::Apache::AuthzCache::handler next in line
[Mon Jun 26 10:30:58 2000] [debug]
/opt/apache/dw3.tivoli.com/81/lib/perl/Tivoli/Apache/AuthzCache.pm(132):
[client 146.84.34.143] handler: (Pre) PerlAuthzHandler
Tivoli::Apache::AuthzLDAP next in line
[Mon Jun 26 10:30:58 2000] [debug]
/opt/apache/dw3.tivoli.com/81/lib/perl/Tivoli/Apache/AuthzCache.pm(132):
[client 146.84.34.143] handler: (Pre) PerlAuthzHandler
Tivoli::Apache::AuthzCache::manage_cache next in line
[Mon Jun 26 10:30:58 2000] [debug]
/opt/apache/dw3.tivoli.com/81/lib/perl/Tivoli/Apache/AuthzCache.pm(140):
[client 146.84.34.143] handler: (Post) PerlAuthzHandler CODE(0x4a3a00) next
in line
[Mon Jun 26 10:30:58 2000] [debug]
/opt/apache/dw3.tivoli.com/81/lib/perl/Tivoli/Apache/AuthzCache.pm(140):
[client 146.84.34.143] handler: (Post) PerlAuthzHandler CODE(0x1840c4) next
in line

The behavior I see is that changes to set_handlers that aren't set to undef
are ignored. AuthzLDAP and AuthzCache::manage_cache are still called even
though I set the handlers to be a stack of AuthzCache and OK. According to
get_handlers, I'm getting garbage back after I do a set_handlers. When I do
a set of undef, get returns nothing, properly enough, but the DirectoryIndex
is ignored/missing.

Regards,
Christian

Reply via email to