dougm 02/04/08 18:00:52
Modified:.Changes
src/modules/perl mod_perl.c modperl_global.c
t/htdocs/includes test.shtml
t/modules include.t
Added: t/htdocs/includes-registry cgipm.pl
Log:
fix 'PerlOptions +GlobalRequest' when used within subrequests
Revision ChangesPath
1.6 +2 -0 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Changes 7 Apr 2002 22:47:31 - 1.5
+++ Changes 9 Apr 2002 01:00:51 - 1.6
-1,5 +1,7
=item 1.99_02-dev
+fix 'PerlOptions +GlobalRequest' when used within subrequests [dougm]
+
get rid of some subroutine redefined warnings in ModPerl::MM that
show up with newer bleedperls. [dougm]
1.113 +6 -0 modperl-2.0/src/modules/perl/mod_perl.c
Index: mod_perl.c
===
RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -r1.112 -r1.113
--- mod_perl.c6 Apr 2002 17:42:10 - 1.112
+++ mod_perl.c9 Apr 2002 01:00:51 - 1.113
-673,6 +673,12
return DECLINED;
}
+/*
+ * need to do this incase we are inside a subrequest,
+ * since header_parser hook is not run in subrequests.
+ */
+modperl_global_request_cfg_set(r);
+
#ifdef USE_ITHREADS
interp = modperl_interp_select(r, r-connection, r-server);
aTHX = interp-perl;
1.5 +5 -8 modperl-2.0/src/modules/perl/modperl_global.c
Index: modperl_global.c
===
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_global.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- modperl_global.c 5 Dec 2001 19:00:29 - 1.4
+++ modperl_global.c 9 Apr 2002 01:00:52 - 1.5
-15,19 +15,16
void modperl_global_request_set(request_rec *r)
{
MP_dRCFG;
+request_rec *old_r = NULL;
+
+/* reset old value, important for subrequests */
+(void)modperl_tls_get_request_rec(old_r);
+modperl_tls_reset_cleanup_request_rec(r-pool, old_r);
modperl_tls_set_request_rec(r);
/* so 'PerlOptions +GlobalRequest' doesnt wipe us out */
MpReqSET_GLOBAL_REQUEST_On(rcfg);
-
-if (r-main) {
-/* reset after subrequests */
-modperl_tls_reset_cleanup_request_rec(r-pool, r-main);
-}
-else {
-modperl_tls_reset_cleanup_request_rec(r-pool, NULL);
-}
}
void modperl_global_request_obj_set(pTHX_ SV *svr)
1.2 +2 -0 modperl-2.0/t/htdocs/includes/test.shtml
Index: test.shtml
===
RCS file: /home/cvs/modperl-2.0/t/htdocs/includes/test.shtml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- test.shtml26 Feb 2002 19:10:04 - 1.1
+++ test.shtml9 Apr 2002 01:00:52 - 1.2
-2,6 +2,8
!--#include virtual=/includes-registry/test.pl --
+!--#include virtual=/includes-registry/cgipm.pl --
+
p align=right[a href=../index.htmlback/a]/p
!--#include virtual=/includes/footer.shtml --
1.1 modperl-2.0/t/htdocs/includes-registry/cgipm.pl
Index: cgipm.pl
===
use CGI ();
my $cgi = CGI-new;
print $cgi-header;
print cgi.pm\n;
__END__
1.2 +1 -0 modperl-2.0/t/modules/include.t
Index: include.t
===
RCS file: /home/cvs/modperl-2.0/t/modules/include.t,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- include.t 26 Feb 2002 19:13:44 - 1.1
+++ include.t 9 Apr 2002 01:00:52 - 1.2
-9,6 +9,7
my patterns = (
'mod_perl mod_include test',
'Hello World',
+'cgi.pm',
'footer',
);