[PATCH] gitweb: Return or exit after done serving request
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Jun 13, 2010, 10:09 UTC
- Message-ID
- <20100613100800.28221.77529.stgit@localhost.localdomain>
Check if there is a caller in top frame of gitweb, and either 'return' if gitweb code is wrapped in subroutine, or 'exit' if it is not.
This should avoid
gitweb.cgi: Subroutine git_SOMETHING redefined at gitweb.cgi line NNN
warnings in error_log when running gitweb with mod_perl (using ModPerl::Registry handler)
Signed-off-by: Jakub Narebski <jnareb@gmail.com> --- I have noticed bunch of
[Sun Jun 13 11:58:02 2010] gitweb.cgi: Subroutine git_opml redefined at /var/www/perl/gitweb/gitweb.cgi line 6808.
warnings in /var/log/httpd/error_log, after running gitweb from mod_perl. This fixes it.
gitweb/gitweb.perl | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index e108bbc..02f366d 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -987,7 +987,16 @@ if ($action !~ m/^(?:opml|project_list|project_index)$/ && die_error(400, "Project needed"); } $actions{$action}->(); + DONE_GITWEB: +if (defined caller) { + # wrapped in a subroutine processing requests, + # e.g. mod_perl with ModPerl::Registry, or PSGI with Plack::App::WrapCGI + return; +} else { + # pure CGI script, serving single request + exit; +} 1; ## ======================================================================