stas 2003/09/15 18:57:27
Modified: lib/ModPerl Code.pm
src/modules/perl modperl_cmd.c modperl_mgv.c
Log:
We can't rely on the PARSED flag for fake mod_perl handlers (as
PerlOptions +Autoload was trying to load them). Introducing a
special flag FAKE especially for this new kind of handlers.
Revision Changes Path
1.105 +1 -1 modperl-2.0/lib/ModPerl/Code.pm
Index: Code.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -u -r1.104 -r1.105
--- Code.pm 20 Aug 2003 23:20:14 -0000 1.104
+++ Code.pm 16 Sep 2003 01:57:27 -0000 1.105
@@ -116,7 +116,7 @@
Req => [qw(NONE SET_GLOBAL_REQUEST PARSE_HEADERS SETUP_ENV
CLEANUP_REGISTERED)],
Interp => [qw(NONE IN_USE PUTBACK CLONED BASE)],
- Handler => [qw(NONE PARSED METHOD OBJECT ANON AUTOLOAD DYNAMIC)],
+ Handler => [qw(NONE PARSED METHOD OBJECT ANON AUTOLOAD DYNAMIC FAKE)],
);
$flags{DirSeen} = $flags{Dir};
1.48 +4 -2 modperl-2.0/src/modules/perl/modperl_cmd.c
Index: modperl_cmd.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -u -r1.47 -r1.48
--- modperl_cmd.c 16 Apr 2003 03:03:35 -0000 1.47
+++ modperl_cmd.c 16 Sep 2003 01:57:27 -0000 1.48
@@ -36,8 +36,10 @@
{
modperl_handler_t *h = modperl_handler_new(p, name);
- /* we don't want this special handler to be parsed */
- MpHandlerPARSED_On(h);
+ /* this is not a real mod_perl handler, we just re-use the
+ * handlers structure to be able to mix mod_perl and non-mod_perl
+ * filters */
+ MpHandlerFAKE_On(h);
h->attrs = MP_FILTER_HTTPD_HANDLER;
if (!*handlers) {
1.26 +4 -1 modperl-2.0/src/modules/perl/modperl_mgv.c
Index: modperl_mgv.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_mgv.c,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -u -r1.25 -r1.26
--- modperl_mgv.c 17 Apr 2003 08:04:47 -0000 1.25
+++ modperl_mgv.c 16 Sep 2003 01:57:27 -0000 1.26
@@ -388,7 +388,10 @@
for (i=0; i < entry->nelts; i++) {
modperl_handler_t *handler = handlers[i];
- if (MpHandlerPARSED(handler)) {
+ if (MpHandlerFAKE(handler)) {
+ /* do nothing with fake handlers */
+ }
+ else if (MpHandlerPARSED(handler)) {
#ifdef USE_ITHREADS
if ((MpSrvPARENT(scfg) && MpSrvAUTOLOAD(scfg))
&& !modperl_mgv_lookup(aTHX_ handler->mgv_cv)) {