diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/PublicInbox/Feed.pm | 5 | ||||
-rw-r--r-- | lib/PublicInbox/TestCommon.pm | 8 | ||||
-rw-r--r-- | lib/PublicInbox/WwwAtomStream.pm | 1 |
3 files changed, 11 insertions, 3 deletions
diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index ee579f6d..e0810420 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -51,7 +51,10 @@ sub new_html_i { my ($ctx, $eml) = @_; $ctx->zmore($ctx->html_top) if exists $ctx->{-html_tip}; - $eml and return PublicInbox::View::eml_entry($ctx, $eml); + if ($eml) { + $ctx->{smsg}->populate($eml) if !$ctx->{ibx}->{over}; + return PublicInbox::View::eml_entry($ctx, $eml); + } my $smsg = shift @{$ctx->{msgs}} or $ctx->zmore(PublicInbox::View::pagination_footer( $ctx, './new.html')); diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 04adede0..55d82fc0 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -740,14 +740,18 @@ sub test_httpd ($$;$) { $env->{$_} or BAIL_OUT "$_ unset"; } SKIP: { - require_mods(qw(Plack::Test::ExternalServer), $skip // 1); + require_mods(qw(Plack::Test::ExternalServer LWP::UserAgent), + $skip // 1); my $sock = tcp_server() or die; my ($out, $err) = map { "$env->{TMPDIR}/std$_.log" } qw(out err); my $cmd = [ qw(-httpd -W0), "--stdout=$out", "--stderr=$err" ]; my $td = start_script($cmd, $env, { 3 => $sock }); my ($h, $p) = tcp_host_port($sock); local $ENV{PLACK_TEST_EXTERNALSERVER_URI} = "http://$h:$p"; - Plack::Test::ExternalServer::test_psgi(client => $client); + my $ua = LWP::UserAgent->new; + $ua->max_redirect(0); + Plack::Test::ExternalServer::test_psgi(client => $client, + ua => $ua); $td->join('TERM'); open my $fh, '<', $err or BAIL_OUT $!; my $e = do { local $/; <$fh> }; diff --git a/lib/PublicInbox/WwwAtomStream.pm b/lib/PublicInbox/WwwAtomStream.pm index 82895db6..7b7047ac 100644 --- a/lib/PublicInbox/WwwAtomStream.pm +++ b/lib/PublicInbox/WwwAtomStream.pm @@ -38,6 +38,7 @@ sub async_next ($) { sub async_eml { # for async_blob_cb my ($ctx, $eml) = @_; my $smsg = delete $ctx->{smsg}; + $smsg->{mid} // $smsg->populate($eml); $ctx->write(feed_entry($ctx, $smsg, $eml)); } |