]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/CGI/Maypole.pm
added new attribute to Maypole::Config - request_options
[maypole.git] / lib / CGI / Maypole.pm
index d223c768c335b20e85d10af609fd0c271498c339..df75712ac261c52c1dac43228de2d88e4dc48207 100644 (file)
@@ -7,7 +7,7 @@ use CGI::Simple;
 use Maypole::Headers;
 use Maypole::Constants;
 
-our $VERSION = '2.11';
+our $VERSION = '2.12';
 
 __PACKAGE__->mk_accessors( qw/cgi/ );
 
@@ -71,9 +71,11 @@ functionality. See L<Maypole> for these:
 
 =cut
 
-sub get_request 
-{
-    shift->cgi( CGI::Simple->new );
+sub get_request {
+  my $self = shift;
+  my $request_options = $self->config->request_options || {};
+  $CGI::Simple::POST_MAX = $request_options->{POST_MAX} if ($request_options->{POST_MAX});
+  $self->cgi( CGI::Simple->new );
 }
 
 =item parse_location
@@ -92,12 +94,18 @@ sub parse_location
         $r->headers_in->set($field_name => $cgi->http($http_header));
     }
 
+    $r->preprocess_location();
+
     my $path = $cgi->url( -absolute => 1, -path_info => 1 );
     my $loc = $cgi->url( -absolute => 1 );
     {
         no warnings 'uninitialized';
         $path .= '/' if $path eq $loc;
-        $path =~ s/^($loc)?\///;
+       if ($loc =~ /\/$/) {
+         $path =~ s/^($loc)?//;
+       } else {
+         $path =~ s/^($loc)?\///;
+       }
     }
     $r->path($path);
     
@@ -105,6 +113,10 @@ sub parse_location
     $r->parse_args;
 }
 
+=item warn
+
+=cut
+
 sub warn {
     my ($self,@args) = @_;
     my ($package, $line) = (caller)[0,2];