diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Mbox.pm | 5 | ||||
-rw-r--r-- | lib/PublicInbox/WwwStream.pm | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 6d902e6c..67b671f5 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -60,10 +60,12 @@ sub getline { sub close {} # noop +# /$INBOX/$MESSAGE_ID/raw sub emit_raw { my ($ctx) = @_; my $mid = $ctx->{mid}; my $ibx = $ctx->{-inbox}; + $ctx->{base_url} = $ibx->base_url($ctx->{env}); my ($mref, $more, $id, $prev, $next); if (my $over = $ibx->over) { my $smsg = $over->next_by_mid($mid, \$id, \$prev) or return; @@ -97,7 +99,7 @@ sub msg_hdr ($$;$) { $header_obj->header_set($d); } my $ibx = $ctx->{-inbox}; - my $base = $ibx->base_url($ctx->{env}); + my $base = $ctx->{base_url}; $mid = $ctx->{mid} unless defined $mid; $mid = mid_escape($mid); my @append = ( @@ -246,6 +248,7 @@ use PublicInbox::Hval qw/to_filename/; sub new { my ($class, $ctx, $cb) = @_; my $buf = ''; + $ctx->{base_url} = $ctx->{-inbox}->base_url($ctx->{env}); bless { buf => \$buf, gz => IO::Compress::Gzip->new(\$buf, Time => 0), diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm index 7399b0ad..f5338c39 100644 --- a/lib/PublicInbox/WwwStream.pm +++ b/lib/PublicInbox/WwwStream.pm @@ -19,7 +19,15 @@ sub close {} sub new { my ($class, $ctx, $cb) = @_; - bless { nr => 0, cb => $cb || *close, ctx => $ctx }, $class; + + my $base_url = $ctx->{-inbox}->base_url($ctx->{env}); + chop $base_url; # no trailing slash for clone + bless { + nr => 0, + cb => $cb || *close, + ctx => $ctx, + base_url => $base_url, + }, $class; } sub response { @@ -83,8 +91,7 @@ sub _html_end { my $desc = ascii_html($ibx->description); my (%seen, @urls); - my $http = $ibx->base_url($ctx->{env}); - chop $http; # no trailing slash for clone + my $http = $self->{base_url}; my $max = $ibx->max_git_epoch; my $dir = (split(m!/!, $http))[-1]; if (defined($max)) { # v2 |