X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FEngine%2FHTTP%2FBase.pm;h=ba512f13284c6021a6125ec4a9092f5a57406dc5;hp=d51c1db3456e4f90f439f748bd9cd22162d5b57e;hb=21465c884872c1ec8c30acd72796445f9eaacb31;hpb=2cdfbf5eab6e2923e855956c66adec25e74387dc diff --git a/lib/Catalyst/Engine/HTTP/Base.pm b/lib/Catalyst/Engine/HTTP/Base.pm index d51c1db..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; @@ -12,7 +13,7 @@ use URI; __PACKAGE__->mk_accessors(qw/http/); -Class::Struct::struct 'Catalyst::Engine::Test::HTTP' => { +Class::Struct::struct 'Catalyst::Engine::HTTP::Base::struct' => { request => 'HTTP::Request', response => 'HTTP::Response', hostname => '$', @@ -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} );