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 AEE8B20248 for ; Tue, 2 Apr 2019 02:44:25 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH] www: fix missing cgit fallback after legacy redirects Date: Tue, 2 Apr 2019 02:44:25 +0000 Message-Id: <20190402024425.27015-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We need to instate our cgit handler everywhere we use NewsWWW to catch wildcard requests which our normal endpoints do not handle. --- lib/PublicInbox/WWW.pm | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/PublicInbox/WWW.pm b/lib/PublicInbox/WWW.pm index 6e14e8c..798e8b1 100644 --- a/lib/PublicInbox/WWW.pm +++ b/lib/PublicInbox/WWW.pm @@ -175,11 +175,18 @@ sub r404 { # simple response for errors sub r { [ $_[0], ['Content-Type' => 'text/plain'], [ join(' ', @_, "\n") ] ] } +sub news_cgit_fallback ($) { + my ($ctx) = @_; + my $www = $ctx->{www}; + my $env = $ctx->{env}; + my $res = $www->news_www->call($env); + $res->[0] == 404 ? $www->cgit->call($env) : $res; +} + # returns undef if valid, array ref response if invalid sub invalid_inbox ($$) { my ($ctx, $inbox) = @_; - my $www = $ctx->{www}; - my $obj = $www->{pi_config}->lookup_name($inbox); + my $obj = $ctx->{www}->{pi_config}->lookup_name($inbox); if (defined $obj) { $ctx->{git} = $obj->git; $ctx->{-inbox} = $obj; @@ -190,9 +197,7 @@ sub invalid_inbox ($$) { # generation and link things intended for nntp:// to https?://, # so try to infer links and redirect them to the appropriate # list URL. - my $env = $ctx->{env}; - my $res = $www->news_www->call($env); - $res->[0] == 404 ? $www->cgit->call($env) : $res; + news_cgit_fallback($ctx); } # returns undef if valid, array ref response if invalid @@ -392,7 +397,7 @@ sub legacy_redirects { } elsif ($path_info =~ m!$INBOX_RE/(\S+/\S+)/f\z!o) { r301($ctx, $1, $2); } else { - $ctx->{www}->news_www->call($ctx->{env}); + news_cgit_fallback($ctx); } } -- EW