package TestApache::basic; use strict; use warnings FATAL => 'all'; use File::Path (); my $MOD_PERL; my $REQ_CLASS; BEGIN { if ( $ENV{MOD_PERL} =~ /(?:1\.9|2\.\d)/ ) { eval <<'EOF'; use Apache2::Request; use Apache2::Cookie; use Apache2::Const qw(OK); use Apache2::RequestRec; use Apache2::RequestUtil; EOF die $@ if $@; $MOD_PERL = 2; $REQ_CLASS = 'Apache2::Request'; } else { eval <<'EOF'; use Apache::Request; use Apache::Constants qw(OK); EOF die $@ if $@; $MOD_PERL = 1; $REQ_CLASS = 'Apache::Request'; } } use Apache::Session::Wrapper; sub handler ($$) : method { my $class = shift; my $r = $REQ_CLASS->new(shift); Apache2::RequestUtil->request($r) if $MOD_PERL == 2; my $dir = $r->dir_config('SessionDir'); File::Path::mkpath( $dir, 0, 0755 ); $r->content_type('text/plain'); my $output = ''; eval { my $w = Apache::Session::Wrapper->new ( class => 'File', directory => $dir, lock_directory => $dir, use_cookie => 1, cookie_name => 'asw_cookie', cookie_expires => '10m', cookie_path => '/', cookie_resend => 1, always_write => 1, header_object => $r, ); $output .= "SESSION: " . $w->session->{_session_id} . "\n"; $w->delete_session() if $r->param('delete'); }; $output .= "ERROR: $@" if $@; $r->send_http_header if $MOD_PERL == 1; print $output; return OK; } 1;