- Improved: Params handling with MP engines
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / Apache / MP20.pm
index 6be2a65..cc06abb 100644 (file)
@@ -3,7 +3,6 @@ package Catalyst::Engine::Apache::MP20;
 use strict;
 use base 'Catalyst::Engine::Apache';
 
-use Apache2              ();
 use Apache2::Connection  ();
 use Apache2::Const       ();
 use Apache2::RequestIO   ();
@@ -27,7 +26,7 @@ See L<Catalyst>.
 
 =head1 DESCRIPTION
 
-This is the Catalyst engine specialized for Apache mod_perl version 2.
+This is the Catalyst engine specialized for Apache mod_perl version 2.0.
 
 =head1 OVERLOADED METHODS
 
@@ -67,6 +66,15 @@ sub handler : method {
     shift->SUPER::handler(@_);
 }
 
+=item $c->prepare_request($r)
+
+=cut
+
+sub prepare_request {
+    my ( $c, $r ) = @_;
+    $c->apache( Apache2::Request->new($r) );
+}
+
 =item $c->prepare_uploads
 
 =cut
@@ -76,22 +84,22 @@ sub prepare_uploads {
 
     my @uploads;
 
-    for my $field ( $c->apache->upload ) {
+    $c->apache->upload->do( sub {
+        my ( $field, $upload ) = @_;
 
-        for my $upload ( $c->apache->upload($field) ) {
+        my $object = Catalyst::Request::Upload->new(
+            filename => $upload->filename,
+            size     => $upload->size,
+            tempname => $upload->tempname,
+            type     => $upload->type
+        );
 
-            my $object = Catalyst::Request::Upload->new(
-                filename => $upload->filename,
-                size     => $upload->size,
-                tempname => $upload->tempname,
-                type     => $upload->type
-            );
+        push( @uploads, $field, $object );
 
-            push( @uploads, $field, $object );
-        }
-    }
+        return 1;
+    });
 
-    $c->req->_assign_values( $c->req->uploads, \@uploads );
+    $c->request->_assign_values( $c->req->uploads, \@uploads );
 }
 
 =back
@@ -103,6 +111,7 @@ L<Catalyst>, L<Catalyst::Engine>, L<Catalyst::Engine::Apache>.
 =head1 AUTHOR
 
 Sebastian Riedel, C<sri@cpan.org>
+Christian Hansen C<ch@ngmedia.com>
 
 =head1 COPYRIGHT