[Catalyst-commits] r13174 - in
Catalyst-Runtime/5.80/branches/fix_request_uri/lib: .
Catalyst/Engine
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Mon Apr 19 07:59:14 GMT 2010
Author: t0m
Date: 2010-04-19 08:59:14 +0100 (Mon, 19 Apr 2010)
New Revision: 13174
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
Log:
Get it mostly working, except uri_for is still buggered
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-19 07:58:37 UTC (rev 13173)
+++ Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst/Engine/CGI.pm 2010-04-19 07:59:14 UTC (rev 13174)
@@ -128,7 +128,6 @@
else {
$base_path = $script_name || '/';
}
-# $base_path .= '/' unless $base_path =~ m{/$};
# If we are running as a backend proxy, get the true hostname
PROXY_CHECK:
@@ -155,25 +154,27 @@
# 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 '/') {
+# 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;
- }
- }
-
+# 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;
# 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-19 07:58:37 UTC (rev 13173)
+++ Catalyst-Runtime/5.80/branches/fix_request_uri/lib/Catalyst.pm 2010-04-19 07:59:14 UTC (rev 13174)
@@ -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{(?<!/)$}{/};
More information about the Catalyst-commits
mailing list