Author: stas
Date: Tue May 10 19:13:36 2005
New Revision: 169558

URL: http://svn.apache.org/viewcvs?rev=169558&view=rev
Log:
ModPerl::RegistryCooker::chdir_file_normal() now chdirs to the current
script's directory or the specified directory as an argument, as it
was planned in first place. Therefore switch ModPerl::Registry and
ModPerl::PerlRun to us NOP for this method call. If chdir_file is
mapped to chdir_file_normal(), then run() and
convert_script_to_compiled_handler() now call chdir to the script's
directory and at before returning go back to the server root.

Modified:
    perl/modperl/trunk/Changes
    perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/PerlRun.pm
    perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/Registry.pm
    perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm

Modified: perl/modperl/trunk/Changes
URL: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?rev=169558&r1=169557&r2=169558&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Tue May 10 19:13:36 2005
@@ -12,6 +12,14 @@
 
 =item 1.999_24-dev
 
+ModPerl::RegistryCooker::chdir_file_normal() now chdirs to the current
+script's directory or the specified directory as an argument, as it
+was planned in first place. Therefore switch ModPerl::Registry and
+ModPerl::PerlRun to us NOP for this method call. If chdir_file is
+mapped to chdir_file_normal(), then run() and
+convert_script_to_compiled_handler() now call chdir to the script's
+directory and at before returning go back to the server root. [Stas]
+
 prevent undef warnings in catfile() calls in Apache2::Build when
 called from the ModPerl-Registry tree [Stas]
 

Modified: perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/PerlRun.pm
URL: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/PerlRun.pm?rev=169558&r1=169557&r2=169558&view=diff
==============================================================================
--- perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/PerlRun.pm (original)
+++ perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/PerlRun.pm Tue May 10 
19:13:36 2005
@@ -52,7 +52,7 @@
     read_script     => 'read_script',
     shebang_to_perl => 'shebang_to_perl',
     get_script_name => 'get_script_name',
-    chdir_file      => 'chdir_file_normal',
+    chdir_file      => 'NOP',
     get_mark_line   => 'get_mark_line',
     compile         => 'compile',
     error_check     => 'error_check',

Modified: perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/Registry.pm
URL: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/Registry.pm?rev=169558&r1=169557&r2=169558&view=diff
==============================================================================
--- perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/Registry.pm (original)
+++ perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/Registry.pm Tue May 10 
19:13:36 2005
@@ -52,7 +52,7 @@
     read_script     => 'read_script',
     shebang_to_perl => 'shebang_to_perl',
     get_script_name => 'get_script_name',
-    chdir_file      => 'chdir_file_normal',
+    chdir_file      => 'NOP',
     get_mark_line   => 'get_mark_line',
     compile         => 'compile',
     error_check     => 'error_check',

Modified: perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm
URL: 
http://svn.apache.org/viewcvs/perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm?rev=169558&r1=169557&r2=169558&view=diff
==============================================================================
--- perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm (original)
+++ perl/modperl/trunk/ModPerl-Registry/lib/ModPerl/RegistryCooker.pm Tue May 
10 19:13:36 2005
@@ -26,6 +26,7 @@
 
 our $VERSION = '1.99';
 
+use Apache2::ServerUtil ();
 use Apache2::Response ();
 use Apache2::RequestRec ();
 use Apache2::RequestUtil ();
@@ -40,7 +41,7 @@
 use ModPerl::Global ();
 
 use File::Spec::Functions ();
-use File::Basename;
+use File::Basename ();
 
 use Apache2::Const -compile => qw(:common &OPT_EXECCGI);
 use ModPerl::Const -compile => 'EXIT';
@@ -62,7 +63,6 @@
 # the debug level can be overriden on the main server level of
 # httpd.conf with:
 #   PerlSetVar ModPerl::RegistryCooker::DEBUG 4
-use Apache2::ServerUtil ();
 use constant DEBUG => 0;
 #XXX: below currently crashes the server on win32
 #    defined Apache2->server->dir_config('ModPerl::RegistryCooker::DEBUG')
@@ -235,7 +235,7 @@
 
     $self->flush_namespace;
 
-    #XXX: $self->chdir_file("$Apache2::Server::CWD/");
+    $self->chdir_file(Apache2::ServerUtil::server_root());
 
     return $rc;
 }
@@ -406,7 +406,7 @@
     return $rc unless $rc == Apache2::Const::OK;
     $self->debug(qq{compiled package \"$self->{PACKAGE}\"}) if DEBUG & D_NOISE;
 
-    #$self->chdir_file("$Apache2::Server::CWD/");
+    $self->chdir_file(Apache2::ServerUtil::server_root());
 
 #    if(my $opt = $r->dir_config("PerlRunOnce")) {
 #        $r->child_terminate if lc($opt) eq "on";
@@ -618,7 +618,9 @@
 
 sub chdir_file_normal {
     my($self, $dir) = @_;
-    # $self->{REQ}->chdir_file($dir ? $dir : $self->{FILENAME});
+    $dir ||= File::Basename::dirname($self->{FILENAME});
+    $self->debug("chdir $dir") if DEBUG & D_NOISE;
+    chdir $dir or die "Can't chdir to $dir: $!";
 }
 
 #########################################################################


Reply via email to