simran wrote:
Hi All,
I have a PerlTransHandler where i am doing something to the effect of:
my $request = instance Apache::Request(shift); $request->document_root("/home/testuser/www"); $request->pnotes("test_key" => "test_value"); warn "Set document root to /home/testuser/www\n";
Then later in a PerlHandler (in the same request) i am doing:
my $request = instance Apache::Request(shift) my $root = $request->document_root();
warn "DocRoot=$root\n"; my $value = $request->pnotes("test_key"); warn "TEST VALUE = $value\n";
=====================================================================
In my apache error log i get:
*** Set document root to /home/testuser/www *** DocRoot=/home/simran/www *** TEST VALUE = test_value
(/home/simran/www was the document root before i changed it in my
PerlTransHandler).
I'm fairly sure that i am looking at the same request object across the
PerlTransHandler and PerlHandler as the $r->pnotes has the key/value i
set (in the PerlTransHandler) still set in the PerlHandler...
Can anyone advise on how i can debug this further to see what might be
happening... there is no other handlers between the above two (so no
chance of another handler changing the document root back to the
original again).
yike.
try using just the passed in Apache object instead of the cached instance object and see what happens. something is definitely amuck.
I am using: Apache/1.3.27 (Unix) mod_ssl/2.8.14 OpenSSL/0.9.6c DAV/1.0.3 mod_perl/1.28, perl 5.8.0
Any help greatly appreciated.
simran.
ps: I believe (if my memory serves me right) that the above used to work
okay under an older version of mod_perl/apache/perl... (and have not got
the environment to test it in again!).
well, sort of. in previous versions of apache it was possible to set $r->document_root. however, any changes made to $r->document_root would persist for the entire life of the child, not just the life of the current request. for that reason, you were expected to always restore the value of $r->document_root to its original state.
see recipe 4.3 in the cookbook
http://www.webreference.com/programming/perl/cookbook/chap4/2.html http://www.modperlcookbook.org/code/ch04/Cookbook/Userdir.pm
I'm not aware of any changes in apache that would make this no longer true, but you never know...
--Geoff