summaryrefslogtreecommitdiffstats
path: root/lib/Plack/Client/Backend/psgi_local.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Plack/Client/Backend/psgi_local.pm')
-rw-r--r--lib/Plack/Client/Backend/psgi_local.pm8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Plack/Client/Backend/psgi_local.pm b/lib/Plack/Client/Backend/psgi_local.pm
index 68f6eff..1da572b 100644
--- a/lib/Plack/Client/Backend/psgi_local.pm
+++ b/lib/Plack/Client/Backend/psgi_local.pm
@@ -78,11 +78,15 @@ sub app_from_request {
my $self = shift;
my ($req) = @_;
- my $app_name = $req->env->{'plack.client.authority'};
- if (!defined $app_name) {
+ my $app_name;
+ if (my $uri = $req->env->{'plack.client.original_uri'}) {
+ $app_name = $uri->authority;
+ }
+ else {
$app_name = $req->uri->authority;
$app_name =~ s/(.*):.*/$1/; # in case a port was added at some point
}
+
my $app = $self->app_for($app_name);
croak "Unknown app: $app_name" unless $app;
return Plack::Middleware::ContentLength->wrap($app);