[Catalyst-commits] r13192 - in
Catalyst-Runtime/5.80/branches/fix_request_uri: lib
lib/Catalyst/Engine t/aggregate t/lib
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Sun May 2 22:26:22 GMT 2010
Author: t0m
Date: 2010-05-02 23:26:22 +0100 (Sun, 02 May 2010)
New Revision: 13192
Modified:
Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst.pm
Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst/Engine/CGI.pm
Catalyst-Runtime/5.80/branches/fix_request_uri/t/aggregate/live_component_controller_args.t
Catalyst-Runtime/5.80/branches/fix_request_uri/t/lib/TestApp.pm
Log:
Revert to old behaviour, allow config for new behaviour. Config option name is rubbish, needs fixing
Modified: Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst/Engine/CGI.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst/Engine/CGI.pm 2010-04-28 23:29:02 UTC (rev 13191)
+++ Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst/Engine/CGI.pm 2010-05-02 22:26:22 UTC (rev 13192)
@@ -154,27 +154,28 @@
# See https://issues.apache.org/bugzilla/show_bug.cgi?id=35256
# Here we try to resurrect the original encoded URI from REQUEST_URI.
my $path_info = $ENV{PATH_INFO};
-# if (my $req_uri = $ENV{REQUEST_URI}) {
-# $req_uri =~ s/^\Q$base_path\E//;
-# $req_uri =~ s/\?.*$//;
-# if ($req_uri && $req_uri ne '/') {
- # This means that REQUEST_URI needs information from PATH_INFO
- # prepending to it to be useful, otherwise the sub path which is
- # being redirected to becomes the app base address which is
- # incorrect.
-# my ($match) = $req_uri =~ m{^(/?[^/]+)};
-# my ($path_info_part) = $path_info =~ m|^(.*?\Q$match\E)|;
-# substr($req_uri, 0, length($match), $path_info_part)
-# if $path_info_part;
-# $path_info = $req_uri;
-# }
-# }
- $path_info =~ s/%2F/%252F/g;
+ if ($c->config->{rfc3875_paths}) {
+ if (my $req_uri = $ENV{REQUEST_URI}) {
+ $req_uri =~ s/^\Q$base_path\E//;
+ $req_uri =~ s/\?.*$//;
+ if ($req_uri && $req_uri ne '/') {
+ # This means that REQUEST_URI needs information from PATH_INFO
+ # prepending to it to be useful, otherwise the sub path which is
+ # being redirected to becomes the app base address which is
+ # incorrect.
+ # FIXME - This stuff is shit, we should get REDIRECT_URI, right?
+ my ($match) = $req_uri =~ m{^(/?[^/]+)};
+ my ($path_info_part) = $path_info =~ m|^(.*?\Q$match\E)|;
+ substr($req_uri, 0, length($match), $path_info_part)
+ if $path_info_part;
+ $path_info = $req_uri;
+ }
+ }
+ }
+
# set the request URI
- warn("Base path $base_path, path_info $path_info");
my $path = $base_path . ( $path_info || '' );
$path =~ s{^/+}{};
- $base_path .= '/' unless $base_path =~ m{/$};
# Using URI directly is way too slow, so we construct the URLs manually
my $uri_class = "URI::$scheme";
Modified: Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst.pm 2010-04-28 23:29:02 UTC (rev 13191)
+++ Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst.pm 2010-05-02 22:26:22 UTC (rev 13192)
@@ -1321,7 +1321,7 @@
# join args with '/', or a blank string
my $args = join('/', grep { defined($_) } @args);
$args =~ s/\?/%3F/g; # STUPID STUPID SPECIAL CASE
-# $args =~ s!^/+!!;
+ $args =~ s!^/+!!;
my $base = $c->req->base;
my $class = ref($base);
$base =~ s{(?<!/)$}{/};
@@ -1890,7 +1890,7 @@
sub get_actions { my $c = shift; $c->dispatcher->get_actions( $c, @_ ) }
-=head2 $c->handle_request( $class, @arguments )
+=head2 $app->handle_request( @arguments )
Called to handle each HTTP request.
Modified: Catalyst-Runtime/5.80/branches/fix_request_uri/t/aggregate/live_component_controller_args.t
===================================================================
--- Catalyst-Runtime/5.80/branches/fix_request_uri/t/aggregate/live_component_controller_args.t 2010-04-28 23:29:02 UTC (rev 13191)
+++ Catalyst-Runtime/5.80/branches/fix_request_uri/t/aggregate/live_component_controller_args.t 2010-05-02 22:26:22 UTC (rev 13192)
@@ -73,15 +73,15 @@
my $response;
- ok( $response = request("http://localhost/args/args/$path"), "Requested args for path $path");
+ ok( $response = request("http://localhost/args/args/$path"), "Requested /args/args/$path");
is( $response->content, $test, "$test as args" );
undef $response;
- ok( $response = request("http://localhost/args/params/$path"), "Requested params for path $path");
+ ok( $response = request("http://localhost/args/params/$path"), "Requested /args/params/$path");
- is( $response->content, $test, "$test as params" );
+ is( $response->content, $test, "response content $test as params" );
undef $response;
Modified: Catalyst-Runtime/5.80/branches/fix_request_uri/t/lib/TestApp.pm
===================================================================
--- Catalyst-Runtime/5.80/branches/fix_request_uri/t/lib/TestApp.pm 2010-04-28 23:29:02 UTC (rev 13191)
+++ Catalyst-Runtime/5.80/branches/fix_request_uri/t/lib/TestApp.pm 2010-05-02 22:26:22 UTC (rev 13192)
@@ -18,7 +18,7 @@
our $VERSION = '0.01';
-TestApp->config( name => 'TestApp', root => '/some/dir' );
+TestApp->config( name => 'TestApp', root => '/some/dir', rfc3875_paths => 1 );
if ($::setup_leakchecker && eval { Class::MOP::load_class('CatalystX::LeakChecker'); 1 }) {
with 'CatalystX::LeakChecker';
More information about the Catalyst-commits
mailing list