]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/ViewVCS.pm
viewvcs: allow '0' as a valid filename for blob downloads
[public-inbox.git] / lib / PublicInbox / ViewVCS.pm
index 63731e9239169c82e54a8afd7368216efcf99715..d67b5eb41dc20e455a74d4a6b7472d37b285e2bf 100644 (file)
@@ -54,7 +54,7 @@ sub stream_large_blob ($$$$) {
        my $qsp = PublicInbox::Qspawn->new($cmd);
        my @cl = ('Content-Length', $size);
        my $env = $ctx->{env};
-       $env->{'qspawn.response'} = delete $ctx->{-wcb};
+       $env->{'qspawn.wcb'} = delete $ctx->{-wcb};
        $qsp->psgi_return($env, undef, sub {
                my ($r, $bref) = @_;
                if (!defined $r) { # error
@@ -96,7 +96,6 @@ sub solve_result {
        my $raw_link = "(<a\nhref=$path>raw</a>)";
        if ($size > $max_size) {
                return stream_large_blob($ctx, $res, \$log, $fn) if defined $fn;
-               # TODO: stream the raw file if it's gigantic, at least
                $log = "<pre><b>Too big to show, download available</b>\n" .
                        "$oid $type $size bytes $raw_link</pre>" . $log;
                return html_page($ctx, 500, \$log);
@@ -111,7 +110,7 @@ sub solve_result {
        }
 
        my $binary = index($$blob, "\0") >= 0;
-       if ($fn) {
+       if (defined $fn) {
                my $h = [ 'Content-Length', $size, 'Content-Type' ];
                push(@$h, ($binary ? 'application/octet-stream' : 'text/plain'));
                return delete($ctx->{-wcb})->([200, $h, [ $$blob ]]);