This file documents the revision history for Perl extension Catalyst.
+5.56
+ - Fixed FastCGI engine to not clobber the global %ENV on each
+ request. (Sam Vilain)
+
5.55 2005-11-15 12:55:00
- Fixed multiple cookie handling
use NEXT;
use URI;
+__PACKAGE__->mk_accessors( 'env' );
+
=head1 NAME
Catalyst::Engine::CGI - The CGI Engine
sub prepare_connection {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
$c->request->address( $ENV{REMOTE_ADDR} );
sub prepare_headers {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
# Read headers from %ENV
while ( my ( $header, $value ) = each %ENV ) {
sub prepare_path {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
my $scheme = $c->request->secure ? 'https' : 'http';
my $host = $ENV{HTTP_HOST} || $ENV{SERVER_NAME};
sub prepare_query_parameters {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
if ( $ENV{QUERY_STRING} ) {
$self->SUPER::prepare_query_parameters( $c, $ENV{QUERY_STRING} );
}
}
+=item $self->prepare_request($c, (env => \%env))
+
+=cut
+
+sub prepare_request {
+ my ( $self, $c, %args ) = @_;
+
+ if ( $args{env} ) {
+ $self->env( $args{env} );
+ }
+}
+
=item $self->prepare_write($c)
Enable autoflush on the output handle for CGI-based engines.
}
$options ||= {};
+
+ my %env;
my $request =
- FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%ENV, $sock,
+ FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%env, $sock,
( $options->{nointr} ? 0 : &FCGI::FAIL_ACCEPT_ON_INTR ),
);
while ( $request->Accept >= 0 ) {
$proc_manager && $proc_manager->pm_pre_dispatch();
- $class->handle_request;
+ $class->handle_request( env => \%env );
$proc_manager && $proc_manager->pm_pre_dispatch();
}
}