]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Apache/MVC.pm
fix to request options for mp1.x
[maypole.git] / lib / Apache / MVC.pm
index 696ab84847a75987f1ce785728f1ae1eecce673c..3ea2d28479dc28d49430c893ba6b7fc18765b3ae 100644 (file)
@@ -1,6 +1,6 @@
 package Apache::MVC;
 
-our $VERSION = '2.11';
+our $VERSION = '2.121';
 
 use strict;
 use warnings;
@@ -93,11 +93,17 @@ functionality. See L<Maypole> for these:
 
 sub get_request {
     my ($self, $r) = @_;
+    my $request_options = $self->config->request_options || {};
     my $ar;
     if ($MODPERL2) {
-       $ar = eval {require Apache2::Request} ? Apache2::Request->new($r) : $r;
-       }
-    else { $ar = Apache::Request->instance($r); }
+      $ar = eval {require Apache2::Request} ? Apache2::Request->new($r,%{$request_options}) : $r;
+    } else {
+      if (keys %$request_options) {
+       $ar = Apache::Request->new($r,%{$request_options});
+      } else {
+       $ar = Apache::Request->instance($r);
+      }
+    }
     $self->ar($ar);
 }
 
@@ -127,6 +133,7 @@ sub parse_location {
 
     # Reconstruct the request headers
     $self->headers_in(Maypole::Headers->new);
+
     my %headers;
     if ($MODPERL2) { %headers = %{$self->ar->headers_in};
     } else { %headers = $self->ar->headers_in; }
@@ -134,6 +141,8 @@ sub parse_location {
         $self->headers_in->set($_, $headers{$_});
     }
 
+    $self->preprocess_location();
+
     my $path = $self->ar->uri;
     my $base  = URI->new($self->config->uri_base);
     my $loc = $base->path;