[RFC/PATCH 1/5] gitweb: Jump do DONE_REQUEST not DONE_GITWEB on error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On error (die_error()), instead of ending gitweb process by non-local
jump to DONE_GITWEB label at the end of requests loop in run()
subroutine, just end current request by jumping to DONE_REQUESt at the
end of run_request() subroutine.

This change should improve truly persistent deployment methods,
currently only FastCGI but in the future also PSGI, as an error page
would no longer require reloading whole persistent environment, just
end request.

This would allow to create new deployment mechanisms (for example
PSGI) based on run_request() and not on run().

Note that DONE_REQUEST label is removed because it is no longer used,
and it wouldn't work correctly for PSGI anyway.

Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx>
---
Without this we could not write to_psgi_app() in patch 3/5.

This patch has its value independently on PSGI support, though if it
is to be accepted standalone, the commit message would have to be
slighlty edited, so that the last two paragraphs of it read:

 "This would allow to create new deployment mechanisms based on
  run_request() and not on run().

  DONE_REQUEST label is removed because it is no longer used."

 gitweb/gitweb.perl |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index e2e6a73..2cca2cd 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1195,6 +1195,10 @@ sub run_request {
 	configure_gitweb_features();
 
 	dispatch();
+
+
+ DONE_REQUEST:
+	1;
 }
 
 our $is_last_request = sub { 1 };
@@ -1252,9 +1256,6 @@ sub run {
 
 		last REQUEST if ($is_last_request->());
 	}
-
- DONE_GITWEB:
-	1;
 }
 
 run();
@@ -4195,7 +4196,7 @@ EOF
 	print "</div>\n";
 
 	git_footer_html();
-	goto DONE_GITWEB
+	goto DONE_REQUEST
 		unless ($opts{'-error_handler'});
 }
 
-- 
1.7.9

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]