From dda0b4ab620e1709c0e25b3d9d70745fe52d60d3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 8 Oct 2022 08:24:47 +0000 Subject: [PATCH] www: cgit: fix fallback to WwwCoderepo on array responses For fast PSGI responses which don't require returning a coderef, just reuse qspawn.wcb directly on the arrayref to avoid an undef $wcb from firing in psgi_return_init_cb. I only noticed this because the ViewVCS search form is broken for /$CODEREPO/$OID/s/ endpoints at the moment. --- lib/PublicInbox/GitHTTPBackend.pm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/PublicInbox/GitHTTPBackend.pm b/lib/PublicInbox/GitHTTPBackend.pm index 61a13560..3aae5454 100644 --- a/lib/PublicInbox/GitHTTPBackend.pm +++ b/lib/PublicInbox/GitHTTPBackend.pm @@ -155,7 +155,11 @@ sub parse_cgi_headers { delete $ctx->{env}->{'qspawn.wcb'}; $ctx->{env}->{'plack.skip-deflater'} = 1; # prevent 2x gzip my $res = $ctx->{www}->coderepo->srv(\%ctx); - $res->(delete $ctx{env}->{'qspawn.wcb'}) if ref($res) eq 'CODE'; + if (ref($res) eq 'CODE') { + $res->(delete $ctx{env}->{'qspawn.wcb'}); + } else { # ref($res) eq 'ARRAY' + $ctx->{env}->{'qspawn.wcb'} = $ctx{env}->{'qspawn.wcb'}; + } $res; # non ARRAY ref for ->psgi_return_init_cb } else { [ $code, \@h ] -- 2.44.0