]> Lady’s Gitweb - Gitweb/blobdiff - gitweb.perl
gitweb: Move evaluate_gitweb_config out of run_request
[Gitweb] / gitweb.perl
index 0ca1f7cd8a52505d9776bc52cea5918c9c23a73a4c48909726b36c6093f5a9cc..e533708f4224be48b0c5c49b5316e8de6ce90ecb4f027fcd0bf22ee9ce0552d6 100755 (executable)
@@ -1028,18 +1028,18 @@ sub dispatch {
        $actions{$action}->();
 }
 
-sub run_request {
+sub reset_timer {
        our $t0 = [Time::HiRes::gettimeofday()]
                if defined $t0;
+       our $number_of_git_cmds = 0;
+}
+
+sub run_request {
+       reset_timer();
 
        evaluate_uri();
-       evaluate_gitweb_config();
-       evaluate_git_version();
        check_loadavg();
 
-       # $projectroot and $projects_list might be set in gitweb config file
-       $projects_list ||= $projectroot;
-
        evaluate_query_params();
        evaluate_path_info();
        evaluate_and_validate_params();
@@ -1087,6 +1087,11 @@ sub evaluate_argv {
 
 sub run {
        evaluate_argv();
+       evaluate_gitweb_config();
+       evaluate_git_version();
+
+       # $projectroot and $projects_list might be set in gitweb config file
+       $projects_list ||= $projectroot;
 
        $pre_listen_hook->()
                if $pre_listen_hook;
@@ -1110,6 +1115,15 @@ sub run {
 
 run();
 
+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
 
This page took 0.149311 seconds and 4 git commands to generate.