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=2e0f374c8f65a6b07dd687f911f2b7c4d97005a3;hp=aac93cc1ea630be07a4688869d0516ea0c6ad570;hb=21465c884872c1ec8c30acd72796445f9eaacb31;hpb=dbf68ff43fb78bf7363f0b8ee38a45587c934214 diff --git a/lib/Catalyst/Engine/Apache.pm b/lib/Catalyst/Engine/Apache.pm index aac93cc..2e0f374 100644 --- a/lib/Catalyst/Engine/Apache.pm +++ b/lib/Catalyst/Engine/Apache.pm @@ -1,12 +1,24 @@ package Catalyst::Engine::Apache; use strict; -use base 'Catalyst::Engine'; -use URI; -use URI::http; +# 1.27 MP13 +# 1.28 MP13 +# 1.29 MP13 +# 1.2901 MP13 +# 1.30 MP13 TBR -__PACKAGE__->mk_accessors(qw/apache/); +# 1.9901 MP19 +# 1.9920 MP19 +# 1.999020 MP19 RC3 +# 1.999021 MP19 RC4 + +# 1.999022 MP20 RC5 +# 1.999023 MP20 RC6 + +1; + +__END__ =head1 NAME @@ -18,142 +30,7 @@ See L. =head1 DESCRIPTION -This is a base class engine specialized for Apache (i.e. for mod_perl). - -=head1 METHODS - -=over 4 - -=item $c->apache - -Returns an C object. - -=back - -=head1 OVERLOADED METHODS - -This class overloads some methods from C. - -=over 4 - -=item $c->finalize_body - -=cut - -sub finalize_body { - my $c = shift; - $c->apache->print( $c->response->body ); -} - -=item $c->prepare_body - -=cut - -sub prepare_body { - my $c = shift; - - my $length = $c->request->content_length; - my ( $buffer, $content ); - - while ($length) { - - $c->apache->read( $buffer, ( $length < 8192 ) ? $length : 8192 ); - - $length -= length($buffer); - $content .= $buffer; - } - - $c->request->body($content); -} - -=item $c->prepare_connection - -=cut - -sub prepare_connection { - my $c = shift; - $c->request->address( $c->apache->connection->remote_ip ); - $c->request->hostname( $c->apache->connection->remote_host ); - $c->request->protocol( $c->apache->protocol ); - - if ( $ENV{HTTPS} || $c->apache->get_server_port == 443 ) { - $c->request->secure(1); - } -} - -=item $c->prepare_headers - -=cut - -sub prepare_headers { - my $c = shift; - $c->request->method( $c->apache->method ); - $c->request->header( %{ $c->apache->headers_in } ); -} - -=item $c->prepare_parameters - -=cut - -sub prepare_parameters { - my $c = shift; - - my @params; - - $c->apache->param->do( sub { - my ( $field, $value ) = @_; - push( @params, $field, $value ); - return 1; - }); - - $c->request->param(@params); -} - -=item $c->prepare_path - -=cut - -# XXX needs fixing, only work with directive, -# not directive -sub prepare_path { - my $c = shift; - - my $base; - { - my $scheme = $c->request->secure ? 'https' : 'http'; - my $host = $c->apache->hostname; - my $port = $c->apache->get_server_port; - my $path = $c->apache->location || '/'; - - unless ( $path =~ /\/$/ ) { - $path .= '/'; - } - - $base = URI->new; - $base->scheme($scheme); - $base->host($host); - $base->port($port); - $base->path($path); - - $base = $base->canonical->as_string; - } - - my $location = $c->apache->location || '/'; - my $path = $c->apache->uri || '/'; - $path =~ s/^($location)?\///; - $path =~ s/^\///; - - $c->req->base($base); - $c->req->path($path); -} - -=item $c->run - -=cut - -sub run { } - -=back +This class will load the correct MP Engine. =head1 SEE ALSO @@ -170,5 +47,3 @@ This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut - -1;