From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 59B861F621 for ; Sat, 21 Mar 2020 02:03:55 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 06/11] mbox: need_gzip uses WwwStream::oneshot Date: Sat, 21 Mar 2020 02:03:49 +0000 Message-Id: <20200321020354.9056-7-e@yhbt.net> In-Reply-To: <20200321020354.9056-1-e@yhbt.net> References: <20200321020354.9056-1-e@yhbt.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: This makes the error page more consistent. Not that it really matters since Compress::Raw::Zlib and IO::Compress packages have been distributed with Perl since 5.10.x. Of course, zlib itself is also a dependency of git. --- lib/PublicInbox/Mbox.pm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/lib/PublicInbox/Mbox.pm b/lib/PublicInbox/Mbox.pm index 5693d30b..f329653a 100644 --- a/lib/PublicInbox/Mbox.pm +++ b/lib/PublicInbox/Mbox.pm @@ -152,7 +152,7 @@ sub thread_cb { sub thread_mbox { my ($ctx, $over, $sfx) = @_; eval { require PublicInbox::MboxGz }; - return need_gzip() if $@; + return need_gzip($ctx) if $@; my $msgs = $ctx->{msgs} = $over->get_thread($ctx->{mid}, {}); return [404, [qw(Content-Type text/plain)], []] if !@$msgs; $ctx->{prev} = $msgs->[-1]; @@ -221,7 +221,7 @@ sub mbox_all { my ($ctx, $query) = @_; eval { require PublicInbox::MboxGz }; - return need_gzip() if $@; + return need_gzip($ctx) if $@; return mbox_all_ids($ctx) if $query eq ''; my $qopts = $ctx->{qopts} = { mset => 2 }; my $srch = $ctx->{srch} = $ctx->{-inbox}->search or @@ -236,16 +236,14 @@ sub mbox_all { } sub need_gzip { - my $title = 'gzipped mbox not available'; - my $body = <$title
$title
+	PublicInbox::WwwStream::oneshot($_[0], 501, \<gzipped mbox not available
+
 The administrator needs to install the Compress::Raw::Zlib Perl module
 to support gzipped mboxes.
-Return to index
-EOF - [501,[qw(Content-Type text/html Content-Length), bytes::length($body)], - [ $body ] ]; +Return to index +EOF } 1;