diff options
author | Eric Wong <e@yhbt.net> | 2020-01-10 09:14:15 +0000 |
---|---|---|
committer | Eric Wong <e@yhbt.net> | 2020-01-11 06:32:08 +0000 |
commit | cb1c874520153f5c28a932959446977062c7db69 (patch) | |
tree | ca4ca2190af9880a25f610333998f4ff6c4a4c13 /lib/PublicInbox | |
parent | 79585642a30f54622541496a9a0090f0aa591692 (diff) | |
download | public-inbox-cb1c874520153f5c28a932959446977062c7db69.tar.gz |
Better not to duplicate the same logic across different classes. Also, our git wrapper class is a strange place for host_prefix_url, but it needs to be usable for coderepos, so it's there, for now...
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r-- | lib/PublicInbox/Inbox.pm | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/lib/PublicInbox/Inbox.pm b/lib/PublicInbox/Inbox.pm index a3cdcbc0..ff800965 100644 --- a/lib/PublicInbox/Inbox.pm +++ b/lib/PublicInbox/Inbox.pm @@ -240,26 +240,22 @@ sub cloneurl { } sub base_url { - my ($self, $env) = @_; - my $scheme; - if ($env && ($scheme = $env->{'psgi.url_scheme'})) { # PSGI env - my $host_port = $env->{HTTP_HOST} || - "$env->{SERVER_NAME}:$env->{SERVER_PORT}"; - my $url = "$scheme://$host_port". ($env->{SCRIPT_NAME} || '/'); + my ($self, $env) = @_; # env - PSGI env + if ($env) { + my $url = PublicInbox::Git::host_prefix_url($env, ''); # for mount in Plack::Builder $url .= '/' if $url !~ m!/\z!; - $url .= $self->{name} . '/'; - } else { - # either called from a non-PSGI environment (e.g. NNTP/POP3) - $self->{-base_url} ||= do { - my $url = $self->{url}->[0] or return undef; - # expand protocol-relative URLs to HTTPS if we're - # not inside a web server - $url = "https:$url" if $url =~ m!\A//!; - $url .= '/' if $url !~ m!/\z!; - $url; - }; + return $url .= $self->{name} . '/'; } + # called from a non-PSGI environment (e.g. NNTP/POP3): + $self->{-base_url} ||= do { + my $url = $self->{url}->[0] or return undef; + # expand protocol-relative URLs to HTTPS if we're + # not inside a web server + $url = "https:$url" if $url =~ m!\A//!; + $url .= '/' if $url !~ m!/\z!; + $url; + }; } sub nntp_url { |