You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Stathy Touloumis <st...@edventions.com> on 2002/01/03 02:15:12 UTC

push_handlers, set_handlers

Apache 1.3.22
mod_perl 1.26

I have noticed some strange behavior when attempting to stack handlers below
the 'ChildInit' phase. This code executes fine when placed in a server
initialization script:
Apache->push_handlers( PerlChildInitHandler=> \&My::Child::handler );

When using the code below in a server initialization script without any
apache config directives the handler does not get called.
Apache->push_handlers( PerlHandler=> \&My::handler );

When applying the following apache conf directive the handler seems to only
get called occasionally (initialization of child process?).
<Files *.html>
SetHandler perl-script
</Files>

Although, when using the 'push_handlers' method at another part of the
request phase the handler gets called occasionally.
Apache->push_handlers( PerlFixupHandler=> \&My::Other::handler );

When using the method below the handlers do not get called at all.
Apache->httpd_conf(<<EOF);
<Files *.html>
	PerlHandler  My::handler
	SetHandler perl-script
</Files>
EOF

Apache->httpd_conf(<<EOF);
PerlFixupHandler  My::Other::handler
EOF

Of course when setting the directives into the apache conf all seems to work
well.
PerlFixupHandler My::Other
<Files *.html>
	PerlHandler My
	SetHandler perl-script
</Files>

Any ideas as to why this strange behavior?  When trying to use the
'set_handlers' method it blows up stating the request object is not created.
I cannot see the reason why the request object should be needed to set/push
handlers which are used to 'handle' the request phases.

Thanks,