X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FApache.pm;h=55d8e89a14bd3eeb32aea14f5505012e93ff1407;hp=ebc3aa169c1fdff4ec82ab6e1c63023f750943c2;hb=23f9d93414eadb11350029f13b51841d8309363b;hpb=b9d646b0639770fc08de91c983babc53b2a3b865 diff --git a/lib/Catalyst/Engine/Apache.pm b/lib/Catalyst/Engine/Apache.pm index ebc3aa1..55d8e89 100644 --- a/lib/Catalyst/Engine/Apache.pm +++ b/lib/Catalyst/Engine/Apache.pm @@ -35,23 +35,29 @@ See L. =head1 DESCRIPTION -The Apache Engine. +This is the Catalyst engine specialized for Apache (i.e. for mod_perl). -=head2 METHODS +=head1 METHODS -=head3 apache_request +=over 4 + +=item $c->apache_request Returns an C object. -=head3 original_request +=item $c->original_request Returns the original Apache request object. -=head2 OVERLOADED METHODS +=back + +=head1 OVERLOADED METHODS This class overloads some methods from C. -=head3 finalize_headers +=over 4 + +=item $c->finalize_headers =cut @@ -81,7 +87,7 @@ sub finalize_headers { return 0; } -=head3 finalize_output +=item $c->finalize_output =cut @@ -90,7 +96,7 @@ sub finalize_output { $c->original_request->print( $c->response->{output} ); } -=head3 prepare_cookies +=item $c->prepare_cookies =cut @@ -102,7 +108,7 @@ sub prepare_cookies { { Apache::Cookie->new( $c->apache_request )->fetch } ); } -=head3 prepare_headers +=item $c->prepare_headers =cut @@ -112,7 +118,7 @@ sub prepare_headers { $c->req->headers->header( %{ $c->apache_request->headers_in } ); } -=head3 prepare_parameters +=item $c->prepare_parameters =cut @@ -126,7 +132,7 @@ sub prepare_parameters { $c->req->parameters( \%args ); } -=head3 prepare_path +=item $c->prepare_path =cut @@ -137,15 +143,15 @@ sub prepare_path { no warnings 'uninitialized'; $c->req->{path} =~ s/^($loc)?\///; my $base = URI->new; - $base->scheme( $c->apache_request->protocol =~ /HTTPS/ ? 'https' : 'http' ); + $base->scheme( $ENV{HTTPS} ? 'https' : 'http' ); $base->host( $c->apache_request->hostname ); $base->port( $c->apache_request->get_server_port ); - $base->path( $c->apache_request->location ); + my $path = $c->apache_request->location; + $base->path( $path =~ /\/$/ ? $path : "$path/" ); $c->req->base( $base->as_string ); - $c->req->server_base( $base->scheme . '://' . $base->authority . '/' ); } -=head3 prepare_request +=item $c->prepare_request($r) =cut @@ -155,7 +161,7 @@ sub prepare_request { $c->original_request($r); } -=head3 prepare_uploads +=item $c->prepare_uploads =cut @@ -171,6 +177,8 @@ sub prepare_uploads { } } +=back + =head1 SEE ALSO L.