]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/WwwStream.pm
www: use PerlIO::scalar (zfh) for buffering
[public-inbox.git] / lib / PublicInbox / WwwStream.pm
index 115e04407f1c022624ee22040e6ea6c06a0b1fc7..77b6f9c29e4ec675120cd2b47f5c6f003abb8e2f 100644 (file)
@@ -167,12 +167,12 @@ sub getline {
        $ctx->zflush(_html_end($ctx));
 }
 
-sub html_done ($$) {
-       my ($ctx, $code) = @_;
-       my $bdy = $ctx->zflush(_html_end($ctx));
+sub html_done ($;@) {
+       my $ctx = $_[0];
+       my $bdy = $ctx->zflush(@_[1..$#_], _html_end($ctx));
        my $res_hdr = delete $ctx->{-res_hdr};
        push @$res_hdr, 'Content-Length', length($bdy);
-       [ $code, $res_hdr, [ $bdy ] ]
+       [ 200, $res_hdr, [ $bdy ] ]
 }
 
 sub html_oneshot ($$;@) {
@@ -181,11 +181,12 @@ sub html_oneshot ($$;@) {
                'Content-Length' => undef ];
        bless $ctx, __PACKAGE__;
        $ctx->{gz} = PublicInbox::GzipFilter::gz_or_noop($res_hdr, $ctx->{env});
+       my @top;
        $ctx->{base_url} // do {
-               $ctx->zmore(html_top($ctx));
+               @top = html_top($ctx);
                $ctx->{base_url} = base_url($ctx);
        };
-       my $bdy = $ctx->zflush(@_[2..$#_], _html_end($ctx));
+       my $bdy = $ctx->zflush(@top, @_[2..$#_], _html_end($ctx));
        $res_hdr->[3] = length($bdy);
        [ $code, $res_hdr, [ $bdy ] ]
 }
@@ -205,9 +206,9 @@ sub async_next ($) {
 }
 
 sub aresponse {
-       my ($ctx, $code, $cb) = @_;
+       my ($ctx, $cb) = @_;
        init($ctx, $cb);
-       $ctx->psgi_response($code, delete $ctx->{-res_hdr});
+       $ctx->psgi_response(200, delete $ctx->{-res_hdr});
 }
 
 sub html_init {
@@ -216,7 +217,7 @@ sub html_init {
        my $h = $ctx->{-res_hdr} = ['Content-Type', 'text/html; charset=UTF-8'];
        $ctx->{gz} = PublicInbox::GzipFilter::gz_or_noop($h, $ctx->{env});
        bless $ctx, __PACKAGE__;
-       $ctx->zmore(html_top($ctx));
+       print { $ctx->zfh } html_top($ctx);
 }
 
 1;