blob: 6da8421b5243050648df2b2e5a0ed3f26d517567 [file] [log] [blame]
package TestModperl::cookie;
use strict;
use warnings FATAL => 'all';
use Apache::TestTrace;
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Const -compile => 'OK';
sub access {
my $r = shift;
# setup CGI variables early
$r->subprocess_env() if $r->args eq 'env';
my ($key, $val) = cookie($r);
my $cookie_is_expected =
($r->args eq 'header' or $r->args eq 'env') ? 1 : 0;
die "Can't get the cookie" if $cookie_is_expected && !defined $val;
return Apache2::Const::OK;
}
sub handler {
my $r = shift;
my ($key, $val) = cookie($r);
$r->print($val) if defined $val;
return Apache2::Const::OK;
}
sub cookie {
my $r = shift;
my $header = $r->headers_in->{Cookie} || '';
my $env = $ENV{HTTP_COOKIE} || $ENV{COOKIE} || ''; # from CGI::Cookie
debug "cookie (" .$r->args . "): header: [$header], env: [$env]";
return split '=', $r->args eq 'header' ? $header : $env;
}
1;
__DATA__
SetHandler perl-script
PerlModule TestModperl::cookie
PerlInitHandler Apache::TestHandler::same_interp_fixup
PerlAccessHandler TestModperl::cookie::access
PerlResponseHandler TestModperl::cookie
PerlOptions -SetupEnv