about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-03-21 02:03:48 +0000
committerEric Wong <e@yhbt.net>2020-03-25 01:48:35 +0000
commite6b159cf3dd1267ea76029fdbf3048488242ef14 (patch)
tree42c64de0d0c66e75159cf6fc4ff0ac82514ceebe /lib
parentd27de5b3df43f41c4e8f3b1cbad79b2436d2a549 (diff)
downloadpublic-inbox-e6b159cf3dd1267ea76029fdbf3048488242ef14.tar.gz
PublicInbox::HTTP will chunk, otherwise, and that's
extra overhead which isn't needed.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/WwwStream.pm13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index fceef745..985e0262 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -9,6 +9,7 @@
 package PublicInbox::WwwStream;
 use strict;
 use warnings;
+use bytes (); # length
 use PublicInbox::Hval qw(ascii_html prurl);
 our $TOR_URL = 'https://www.torproject.org/';
 our $CODE_URL = 'https://public-inbox.org/public-inbox.git';
@@ -170,14 +171,18 @@ sub getline {
 }
 
 sub oneshot {
-        my ($ctx, $code, $strref) = @_;
+        my ($ctx, $code, $sref) = @_;
         my $self = bless {
                 ctx => $ctx,
                 base_url => base_url($ctx),
         }, __PACKAGE__;
-        [ $code, [ 'Content-Type', 'text/html; charset=UTF-8' ], [
-                _html_top($self), $strref ? $$strref : (), _html_end($self)
-        ] ]
+        my @x = (_html_top($self), $sref ? $$sref : (), _html_end($self));
+        my $len = 0;
+        $len += bytes::length($_) for @x;
+        [ $code, [
+                'Content-Type' => 'text/html; charset=UTF-8',
+                'Content-Length' => $len
+        ], \@x ];
 }
 
 1;