Added recursive -r flag to prove example
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / HTTP / Base.pm
index d51c1db..ba512f1 100644 (file)
@@ -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} );