X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FNNTP.pm;h=5a886a3c32be100b0d24f393b8792846d0fcfd24;hb=ea71a5606c633f82975e8208a6c552053f7f5af8;hp=30d3dab69d973ad8eb971cb5158d6902d80af413;hpb=71ea9961786fa14ea0a67200847bac5a76abf751;p=public-inbox.git diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm index 30d3dab6..5a886a3c 100644 --- a/lib/PublicInbox/NNTP.pm +++ b/lib/PublicInbox/NNTP.pm @@ -521,10 +521,12 @@ found: sub msg_body_write ($$) { my ($self, $msg) = @_; + + # these can momentarily double the memory consumption :< $$msg =~ s/^\./../smg; - $$msg =~ s/(?{article} = $art if defined $art && $art =~ /\A[0-9]+\z/; } -sub _header ($) { - my $hdr = $_[0]->as_string; +sub msg_hdr_write ($$$) { + my ($self, $hdr, $body_follows) = @_; + $hdr = $hdr->as_string; utf8::encode($hdr); - $hdr =~ s/(? article retrieved - head and body follow"); - msg_more($self, _header($hdr)); - msg_more($self, "\r\n"); + msg_hdr_write($self, $hdr, 1); msg_body_write($self, $msg); } @@ -566,7 +568,7 @@ sub cmd_head ($;$) { my ($n, $mid, undef, $hdr) = @$r; set_art($self, $art); more($self, "221 $n <$mid> article retrieved - head follows"); - msg_more($self, _header($hdr)); + msg_hdr_write($self, $hdr, 0); '.' }