And use Exporter to make our life easier, since WwwAltId was
using a non-existent PublicInbox::WwwResponse namespace in error
paths which doesn't get noticed by `perl -c' or exercised by
tests on normal systems.
Fixes: 6512b1245ebc6fe3 ("www: add endpoint to retrieve altid dumps")
use strict;
use warnings;
use PublicInbox::Hval qw(ascii_html prurl mid_href);
use strict;
use warnings;
use PublicInbox::Hval qw(ascii_html prurl mid_href);
-use PublicInbox::WwwStream;
+use PublicInbox::WwwStream qw(html_oneshot);
use PublicInbox::Smsg;
our $MIN_PARTIAL_LEN = 16;
use PublicInbox::Smsg;
our $MIN_PARTIAL_LEN = 16;
$ctx->{-html_tip} = $s .= '</pre>';
$ctx->{-title_html} = $title;
$ctx->{-upfx} = '../';
$ctx->{-html_tip} = $s .= '</pre>';
$ctx->{-title_html} = $title;
$ctx->{-upfx} = '../';
- PublicInbox::WwwStream::oneshot($ctx, $code);
+ html_oneshot($ctx, $code);
qq(<a\nhref="$u$href/">$u$html/</a>\n)
} @$found),
$ext_urls, '</pre>');
qq(<a\nhref="$u$href/">$u$html/</a>\n)
} @$found),
$ext_urls, '</pre>');
- PublicInbox::WwwStream::oneshot($ctx, $code);
+ html_oneshot($ctx, $code);
use PublicInbox::MID qw/mid_escape/;
use PublicInbox::Hval qw/to_filename/;
use PublicInbox::Smsg;
use PublicInbox::MID qw/mid_escape/;
use PublicInbox::Hval qw/to_filename/;
use PublicInbox::Smsg;
+use PublicInbox::WwwStream qw(html_oneshot);
use Email::Simple;
use Email::MIME::Encode;
use Email::Simple;
use Email::MIME::Encode;
- PublicInbox::WwwStream::oneshot($_[0], 501, \<<EOF);
+ html_oneshot($_[0], 501, \<<EOF);
<pre>gzipped mbox not available
The administrator needs to install the Compress::Raw::Zlib Perl module
<pre>gzipped mbox not available
The administrator needs to install the Compress::Raw::Zlib Perl module
use warnings;
use bytes (); # only for bytes::length
use PublicInbox::SolverGit;
use warnings;
use bytes (); # only for bytes::length
use PublicInbox::SolverGit;
-use PublicInbox::WwwStream;
+use PublicInbox::WwwStream qw(html_oneshot);
use PublicInbox::Linkify;
use PublicInbox::Tmpfile;
use PublicInbox::Hval qw(ascii_html to_filename);
use PublicInbox::Linkify;
use PublicInbox::Tmpfile;
use PublicInbox::Hval qw(ascii_html to_filename);
my ($ctx, $code, $strref) = @_;
my $wcb = delete $ctx->{-wcb};
$ctx->{-upfx} = '../../'; # from "/$INBOX/$OID/s/"
my ($ctx, $code, $strref) = @_;
my $wcb = delete $ctx->{-wcb};
$ctx->{-upfx} = '../../'; # from "/$INBOX/$OID/s/"
- my $res = PublicInbox::WwwStream::oneshot($ctx, $code, $strref);
+ my $res = html_oneshot($ctx, $code, $strref);
$wcb ? $wcb->($res) : $res;
}
$wcb ? $wcb->($res) : $res;
}
package PublicInbox::WwwAltId;
use strict;
use PublicInbox::Qspawn;
package PublicInbox::WwwAltId;
use strict;
use PublicInbox::Qspawn;
-use PublicInbox::WwwStream;
+use PublicInbox::WwwStream qw(html_oneshot);
use PublicInbox::AltId;
use PublicInbox::Spawn qw(which);
our $sqlite3 = $ENV{SQLITE3};
sub sqlite3_missing ($) {
use PublicInbox::AltId;
use PublicInbox::Spawn qw(which);
our $sqlite3 = $ENV{SQLITE3};
sub sqlite3_missing ($) {
- PublicInbox::WwwResponse::oneshot($_[0], 501, \<<EOF);
+ html_oneshot($_[0], 501, \<<EOF);
<pre>sqlite3 not available
The administrator needs to install the sqlite3(1) binary
<pre>sqlite3 not available
The administrator needs to install the sqlite3(1) binary
sub check_output {
my ($r, $bref, $ctx) = @_;
sub check_output {
my ($r, $bref, $ctx) = @_;
- return PublicInbox::WwwResponse::oneshot($ctx, 500) if !defined($r);
+ return html_oneshot($ctx, 500) if !defined($r);
if ($r == 0) {
my $err = eval { $ctx->{env}->{'psgi.errors'} } // \*STDERR;
$err->print("unexpected EOF from sqlite3\n");
if ($r == 0) {
my $err = eval { $ctx->{env}->{'psgi.errors'} } // \*STDERR;
$err->print("unexpected EOF from sqlite3\n");
- return PublicInbox::WwwResponse::oneshot($ctx, 501);
+ return html_oneshot($ctx, 501);
}
[200, [ qw(Content-Type application/gzip), 'Content-Disposition',
"inline; filename=$ctx->{altid_pfx}.sql.gz" ] ]
}
[200, [ qw(Content-Type application/gzip), 'Content-Disposition',
"inline; filename=$ctx->{altid_pfx}.sql.gz" ] ]
my $altid_map = $ibx->altid_map;
my $fn = $altid_map->{$altid_pfx};
unless (defined $fn) {
my $altid_map = $ibx->altid_map;
my $fn = $altid_map->{$altid_pfx};
unless (defined $fn) {
- return PublicInbox::WwwStream::oneshot($ctx, 404, \<<EOF);
+ return html_oneshot($ctx, 404, \<<EOF);
<pre>`$altid_pfx' is not a valid altid for this inbox</pre>
EOF
}
if ($env->{REQUEST_METHOD} ne 'POST') {
my $url = $ibx->base_url($ctx->{env}) . "$altid_pfx.sql.gz";
<pre>`$altid_pfx' is not a valid altid for this inbox</pre>
EOF
}
if ($env->{REQUEST_METHOD} ne 'POST') {
my $url = $ibx->base_url($ctx->{env}) . "$altid_pfx.sql.gz";
- return PublicInbox::WwwStream::oneshot($ctx, 405, \<<EOF);
+ return html_oneshot($ctx, 405, \<<EOF);
<pre>A POST request required to retrieve $altid_pfx.sql.gz
curl -XPOST -O $url
<pre>A POST request required to retrieve $altid_pfx.sql.gz
curl -XPOST -O $url
}
eval { require PublicInbox::GzipFilter } or
}
eval { require PublicInbox::GzipFilter } or
- return PublicInbox::WwwStream::oneshot($ctx, 501, \<<EOF);
+ return html_oneshot($ctx, 501, \<<EOF);
<pre>gzip output not available
The administrator needs to install the Compress::Raw::Zlib Perl module
<pre>gzip output not available
The administrator needs to install the Compress::Raw::Zlib Perl module
EOF
$sqlite3 //= which('sqlite3');
if (!defined($sqlite3)) {
EOF
$sqlite3 //= which('sqlite3');
if (!defined($sqlite3)) {
- return PublicInbox::WwwStream::oneshot($ctx, 501, \<<EOF);
+ return html_oneshot($ctx, 501, \<<EOF);
<pre>sqlite3 not available
The administrator needs to install the sqlite3(1) binary
<pre>sqlite3 not available
The administrator needs to install the sqlite3(1) binary
package PublicInbox::WwwStream;
use strict;
use warnings;
package PublicInbox::WwwStream;
use strict;
use warnings;
+use base qw(Exporter);
+our @EXPORT_OK = qw(html_oneshot);
use bytes (); # length
use PublicInbox::Hval qw(ascii_html prurl);
our $TOR_URL = 'https://www.torproject.org/';
use bytes (); # length
use PublicInbox::Hval qw(ascii_html prurl);
our $TOR_URL = 'https://www.torproject.org/';
delete $self->{cb} ? _html_end($self) : undef;
}
delete $self->{cb} ? _html_end($self) : undef;
}
+sub html_oneshot ($$;$) {
my ($ctx, $code, $sref) = @_;
my $self = bless {
ctx => $ctx,
my ($ctx, $code, $sref) = @_;
my $self = bless {
ctx => $ctx,