diff options
Diffstat (limited to 'lib/Plack/Client/Backend/psgi_local.pm')
-rw-r--r-- | lib/Plack/Client/Backend/psgi_local.pm | 8 |
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); |