From 5ed2ec1041b6aeec81b0f0a9775355a9b2c755a6 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Sun, 13 Jun 2010 12:09:32 +0200 Subject: gitweb: Return or exit after done serving request 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 Signed-off-by: Junio C Hamano --- gitweb/gitweb.perl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'gitweb') diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 2365311d94..9d2b8c3b64 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1000,8 +1000,16 @@ if ($action !~ m/^(?:opml|project_list|project_index)$/ && die_error(400, "Project needed"); } $actions{$action}->(); + DONE_GITWEB: -1; +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; +} ## ====================================================================== ## action links -- cgit v1.2.3