X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FMbox.pm;h=c92d444774cef389fb6f35d0b38b4b3639377aba;hb=f76f265a851944b5dedcc3be5f3b5224b6ebda89;hp=332e89a7220c1a153b764db42be8eb6846c97b08;hpb=76ce9fbacfd29e19b47aeba786daca20b2b01117;p=public-inbox.git diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 332e89a7..c92d4447 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -1,10 +1,10 @@ -# Copyright (C) 2015, all contributors +# Copyright (C) 2015 all contributors # License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) -# Streaming interface for formatting messages as an mbox +# Streaming interface for formatting messages as an mboxrd package PublicInbox::Mbox; use strict; use warnings; -use PublicInbox::MID qw/mid_compressed mid2path/; +use PublicInbox::MID qw/mid2path/; require Email::Simple; sub thread_mbox { @@ -22,21 +22,23 @@ sub emit1 { # single message should be easily renderable in browsers my $fh = $response->([200, ['Content-Type'=>'text/plain']]); emit_msg($fh, $simple); + $fh->close; } } sub emit_msg { my ($fh, $simple) = @_; # Email::Simple object + my $header_obj = $simple->header_obj; # drop potentially confusing headers, ssoma already should've dropped # Lines and Content-Length foreach my $d (qw(Lines Content-Length Status)) { - $simple->header_set($d); + $header_obj->header_set($d); } - my $buf = $simple->header_obj->as_string; + my $buf = $header_obj->as_string; unless ($buf =~ /\AFrom /) { - $fh->write("From a\@a Thu Jan 1 00:00:00 1970\n"); + $fh->write("From mboxrd\@z Thu Jan 1 00:00:00 1970\n"); } $fh->write($buf .= $simple->crlf); @@ -67,7 +69,7 @@ sub emit_mbox { $fh = PublicInbox::MboxGz->new($fh) if $sfx; require PublicInbox::GitCatFile; - my $mid = mid_compressed($ctx->{mid}); + my $mid = $ctx->{mid}; my $git = PublicInbox::GitCatFile->new($ctx->{git_dir}); my %opts = (offset => 0); my $nr;