use HTTP::Body;
use HTTP::Headers;
use URI::QueryParam;
-use Scalar::Util ();
+
+use namespace::clean -except => 'meta';
+
+has env => (is => 'rw');
# input position and length
has read_length => (is => 'rw');
has _prepared_write => (is => 'rw');
-no Moose;
-
# Amount of data to read from input on each pass
our $CHUNKSIZE = 64 * 1024;
my ( $self, $c ) = @_;
my $body = $c->response->body;
no warnings 'uninitialized';
- if ( Scalar::Util::blessed($body) && $body->can('read') or ref($body) eq 'GLOB' ) {
+ if ( blessed($body) && $body->can('read') or ref($body) eq 'GLOB' ) {
while ( !eof $body ) {
read $body, my ($buffer), $CHUNKSIZE;
last unless $self->write( $c, $buffer );
my $val = $response->cookies->{$name};
my $cookie = (
- Scalar::Util::blessed($val)
+ blessed($val)
? $val
: CGI::Simple::Cookie->new(
-name => $name,
-expires => $val->{expires},
-domain => $val->{domain},
-path => $val->{path},
- -secure => $val->{secure} || 0
+ -secure => $val->{secure} || 0,
+ -httponly => $val->{httponly} || 0,
)
);
=head2 $self->read_chunk($c, $buffer, $length)
-Each engine inplements read_chunk as its preferred way of reading a chunk
+Each engine implements read_chunk as its preferred way of reading a chunk
of data.
=cut
<obsolete>, see finalize_body
+=head2 $self->env
+
+Hash containing enviroment variables including many special variables inserted
+by WWW server - like SERVER_*, REMOTE_*, HTTP_* ...
+
+Before accesing enviroment variables consider whether the same information is
+not directly available via Catalyst objects $c->request, $c->engine ...
+
+BEWARE: If you really need to access some enviroment variable from your Catalyst
+application you should use $c->engine->env->{VARNAME} instead of $ENV{VARNAME},
+as in some enviroments the %ENV hash does not contain what you would expect.
+
=head1 AUTHORS
Catalyst Contributors, see Catalyst.pm