On Wed, 8 Aug 2001, Jay Buffington wrote:

> Hi,
> 
> In my httpd.conf file I have: 
> <Location /foo/>
>     SetHandler perl-script
>     PerlTypeHandler foo
>     PerlHandler bar
> </Location>
> 
> and then in the foo and bar files I have: 
> 
> ----------file foo.pm---------
> package foo;
> 
> sub handler {
>     my $r = shift;
> 
>     $r->log_error("I'm in foo.");
> }
> 1;
> 
> 
> ----------file bar.pm---------
> package bar; 
> 
> sub handler {
>     my $r = shift;
> 
>     $r->log_error("I'm in bar.");
> }
> 1;
> 
> 
> I would expect this experiment would print out "I'm in foo." followed by "I'm in 
>bar." to my apache error log.  It only prints "I'm in foo."  If I remove the 
>PerlTypeHandler line from the httpd.conf I get only "I'm in bar."  If I leave the 
>TypeHandler but omit the PerlHandler, and add 
>$r->push_handlers(PerlHandler=>\&bar::handler); to foo.pm I still only get "I'm in 
>foo."
> 
> I'm using Perl 5.6 and mod_perl 1.25 with apache 1.3.19 
> 
> Why does this not work as I expected?

because your PerlTypeHandler has returned the value 0 (aka OK), the type
handler phase is 'run first' (stop at first to return anything other than
DECLINED), which means mod_mime's type handler is never run so
r->handler never gets configured.  you either need to return DECLINED in
your PerlTypeHandler or set $r->handler('perl-script') yourself.

Reply via email to