stas2003/11/23 13:26:01
Modified:ModPerl-Registry/lib/ModPerl PerlRun.pm Registry.pm
RegistryCooker.pm
.Changes
Log:
Fix ModPerl::Registry handlers family to modify $0 only for the
duration of the handler, by localizing it
Revision ChangesPath
1.7 +1 -1 modperl-2.0/ModPerl-Registry/lib/ModPerl/PerlRun.pm
Index: PerlRun.pm
===
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/PerlRun.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -u -r1.6 -r1.7
--- PerlRun.pm23 Mar 2003 04:52:24 - 1.6
+++ PerlRun.pm23 Nov 2003 21:26:01 - 1.7
@@ -37,7 +37,7 @@
cache_it=> 'NOP',
read_script => 'read_script',
rewrite_shebang => 'rewrite_shebang',
-set_script_name => 'set_script_name',
+get_script_name => 'get_script_name',
chdir_file => 'chdir_file_normal',
get_mark_line => 'get_mark_line',
compile => 'compile',
1.8 +1 -1 modperl-2.0/ModPerl-Registry/lib/ModPerl/Registry.pm
Index: Registry.pm
===
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/Registry.pm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -u -r1.7 -r1.8
--- Registry.pm 23 Mar 2003 04:52:24 - 1.7
+++ Registry.pm 23 Nov 2003 21:26:01 - 1.8
@@ -37,7 +37,7 @@
cache_it=> 'cache_it',
read_script => 'read_script',
rewrite_shebang => 'rewrite_shebang',
-set_script_name => 'set_script_name',
+get_script_name => 'get_script_name',
chdir_file => 'chdir_file_normal',
get_mark_line => 'get_mark_line',
compile => 'compile',
1.38 +10 -8 modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm
Index: RegistryCooker.pm
===
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -u -r1.37 -r1.38
--- RegistryCooker.pm 30 Aug 2003 02:39:45 - 1.37
+++ RegistryCooker.pm 23 Nov 2003 21:26:01 - 1.38
@@ -173,7 +173,6 @@
my $r = $self->{REQ};
my $package = $self->{PACKAGE};
-$self->set_script_name;
$self->chdir_file;
my $cv = \&{"$package\::handler"};
@@ -356,10 +355,13 @@
$self->strip_end_data_segment;
+my $script_name = $self->get_script_name || $0;
+
my $eval = join '',
'package ',
$self->{PACKAGE}, ";",
-"sub handler {\n",
+"sub handler {",
+"local \$0 = '$script_name';",
$line,
${ $self->{CODE} },
"\n}"; # last line comment without newline?
@@ -568,15 +570,15 @@
}
#
-# func: set_script_name
-# dflt: set_script_name
-# desc: set $0 to the script's name
+# func: get_script_name
+# dflt: get_script_name
+# desc: get the script's name to set into $0
# args: $self - registry blessed object
-# rtrn: nothing
+# rtrn: path to the script's filename
#
-sub set_script_name {
-*0 = \(shift->{FILENAME});
+sub get_script_name {
+shift->{FILENAME};
}
#
1.260 +3 -0 modperl-2.0/Changes
Index: Changes
===
RCS file: /home/cvs/modperl-2.0/Changes,v
retrieving revision 1.259
retrieving revision 1.260
diff -u -u -r1.259 -r1.260
--- Changes 22 Nov 2003 10:27:42 - 1.259
+++ Changes 23 Nov 2003 21:26:01 - 1.260
@@ -12,6 +12,9 @@
=item 1.99_12-dev
+Fix ModPerl::Registry handlers family to modify $0 only for the
+duration of the handler, by localizing it [Stas]
+
Fix :Apache perlio's STDOUT to be reentrant + modules/include_subreq
test [Stas]