use URI;
use URI::http;
-__PACKAGE__->mk_accessors('cgi');
-
=head1 NAME
Catalyst::Engine::CGI::Base - Base class for CGI Engines
This is a base class for CGI engines.
-=head1 METHODS
-
-=over 4
-
-=item $c->cgi
-
-This config parameter contains the C<CGI> object.
-
-=back
-
=head1 OVERLOADED METHODS
This class overloads some methods from C<Catalyst::Engine>.
print "\015\012";
}
+=item $c->prepare_body
+
+=cut
+
+sub prepare_body {
+ my $c = shift;
+
+ my $body = undef;
+
+ while ( read( STDIN, my $buffer, 8192 ) ) {
+ $body .= $buffer;
+ }
+
+ $c->request->body($body);
+}
+
=item $c->prepare_connection
=cut
$c->request->address( $ENV{REMOTE_ADDR} );
$c->request->hostname( $ENV{REMOTE_HOST} );
$c->request->protocol( $ENV{SERVER_PROTOCOL} );
+ $c->request->user( $ENV{REMOTE_USER} );
if ( $ENV{HTTPS} || $ENV{SERVER_PORT} == 443 ) {
$c->request->secure(1);
$base = $base->canonical->as_string;
}
+ my $location = $ENV{SCRIPT_NAME} || '/';
my $path = $ENV{PATH_INFO} || '/';
+ $path =~ s/^($location)?\///;
$path =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
$path =~ s/^\///;