X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FHTTP%2FBase.pm;h=ba512f13284c6021a6125ec4a9092f5a57406dc5;hb=f829e6ccdcc4716f6952ae91680241ff0213b79a;hp=a5df9b85e8fa2f22bb551f3edc5dc70d9da7c4ee;hpb=d837e1a7eadff19ff04373ad19d22fa293e19db5;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Engine/HTTP/Base.pm b/lib/Catalyst/Engine/HTTP/Base.pm index a5df9b8..ba512f1 100644 --- a/lib/Catalyst/Engine/HTTP/Base.pm +++ b/lib/Catalyst/Engine/HTTP/Base.pm @@ -3,6 +3,7 @@ package Catalyst::Engine::HTTP::Base; use strict; use base 'Catalyst::Engine'; +use Catalyst::Exception; use Class::Struct (); use HTTP::Headers::Util 'split_header_words'; use HTTP::Request; @@ -74,6 +75,7 @@ sub prepare_connection { $c->request->address( $c->http->address ); $c->request->hostname( $c->http->hostname ); $c->request->protocol( $c->http->request->protocol ); + $c->request->secure(1) if ( $c->http->request->uri->port == 443 ); } =item $c->prepare_headers @@ -115,8 +117,14 @@ sub prepare_parameters { if ( $parameters{filename} ) { my $fh = File::Temp->new( UNLINK => 0 ); - $fh->write( $part->content ) or die $!; - $fh->flush or die $!; + + unless ( $fh->write( $part->content ) ) { + Catalyst::Exception->throw( message => $! ); + } + + unless ( $fh->flush ) { + Catalyst::Exception->throw( message => $! ); + } my $upload = Catalyst::Request::Upload->new( filename => $parameters{filename}, @@ -125,7 +133,9 @@ sub prepare_parameters { type => $part->content_type ); - $fh->close; + unless ( $fh->close ) { + Catalyst::Exception->throw( message => $! ); + } push( @uploads, $parameters{name}, $upload ); push( @params, $parameters{name}, $parameters{filename} );