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