I'm surprised this hasn't come up for anyone else but there is a problem
with line 355 of Embperl.pm when it attempts to get the request cookie
headers using $req_rec->header_in(), namely header_in() doesn't exist in
mod_perl 2 :) (See:
http://perl.apache.org/docs/2.0/user/porting/compat.html#C__r_E_gt_heade
r_in_)
Simple patch below. The APR::Table is an extra "require" call as
headers_in() returns an APR::Table object and the hash isn't accessible
in a tied manner unless that module is loaded.
I haven't tested this under earlier mod_perl versions - you may need a
similar "require Apache::Table ;" in the appropriate stanza for those.
--- Embperl.pm.orig 2006-04-09 00:55:14.000000000 +1000
+++ Embperl.pm 2007-07-16 18:38:26.000000000 +1000
@@ -74,6 +74,7 @@
require Apache2::ServerRec ;
require Apache2::ServerUtil ;
require Apache2::RequestRec ;
+ require APR::Table ; # for Apache2::RequestRec->headers_in()
require Apache2::RequestUtil ;
require Apache2::SubRequest ;
$srv_rec = Apache2::ServerUtil -> server ;
@@ -352,7 +353,7 @@
my $debug = $appparam?$appparam -> {debug} &
Embperl::Constant::dbgSession:0 ;
if (!$uid)
{
- my $cookie_val = $ENV{HTTP_COOKIE} ||
($req_rec?$req_rec->header_in('Cookie'):undef) ;
+ my $cookie_val = $ENV{HTTP_COOKIE} ||
($req_rec?$req_rec->headers_in->{'Cookie'}:undef) ;
if ((defined ($cookie_val) && ($cookie_val =~
/$cookie_name=(.*?)(\;|\s|$)/)) || ($ENV{QUERY_STRING} =~
/$cookie_name=.*?:(.*?)(\;|\s|&|$)/) || $ENV{EMBPERL_UID} )
{
--
Andrew O'Brien
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]