[PATCHv4 2/3] gitweb: support to globally disable a snapshot format

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

 



Now XZ is disabled by default.


--
Mark A Rada (ferrous26)
marada@xxxxxxxxxxxx


------->8------------
From: Mark Rada <marada@xxxxxxxxxxxx>
Date: Sat, 1 Aug 2009 13:24:03 -0400
Subject: [PATCH 2/3] gitweb: support to globally disable a snapshot format

I added an optional variable, 'disabled', to to the
$known_snapshot_formats keys so that a Gitweb administrator can
globally enable or disable a specific format for snapshots.

All formats are enabled by default, except for the txz format
(explained below), because project specific overriding is disabled by
default.

The txz format is disabled as it is still new and has relatively high
resource requirements (ref. 4f1c1fb73b4cdaf4bcf817fb2af99bd71f1ca61f).

Signed-off-by: Mark Rada <marada@xxxxxxxxxxxx>
---
 gitweb/gitweb.perl |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 3398163..5a628fa 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -160,7 +160,8 @@ our %known_snapshot_formats = (
 	# 	'suffix' => filename suffix,
 	# 	'format' => --format for git-archive,
 	# 	'compressor' => [compressor command and arguments]
-	# 	                (array reference, optional)}
+	# 	                (array reference, optional),
+	# 	'disabled' => boolean (optional)}
 	#
 	'tgz' => {
 		'display' => 'tar.gz',
@@ -181,7 +182,8 @@ our %known_snapshot_formats = (
 		'type' => 'application/x-xz',
 		'suffix' => '.tar.xz',
 		'format' => 'tar',
-		'compressor' => ['xz']},
+		'compressor' => ['xz'],
+		'disabled' => 1},

 	'zip' => {
 		'display' => 'zip',
@@ -502,7 +504,8 @@ sub filter_snapshot_fmts {
 		exists $known_snapshot_format_aliases{$_} ?
 		       $known_snapshot_format_aliases{$_} : $_} @fmts;
 	@fmts = grep {
-		exists $known_snapshot_formats{$_} } @fmts;
+		exists $known_snapshot_formats{$_} &&
+		!$known_snapshot_formats{$_}{'disabled'}} @fmts;
 }

 our $GITWEB_CONFIG = $ENV{'GITWEB_CONFIG'} || "++GITWEB_CONFIG++";
@@ -5171,6 +5174,8 @@ sub git_snapshot {
 		die_error(400, "Unknown snapshot format");
 	} elsif (!grep($_ eq $format, @snapshot_fmts)) {
 		die_error(403, "Unsupported snapshot format");
+	} elsif ($known_snapshot_formats{$format}{'disabled'}) {
+		die_error(403, "Snapshot format not allowed");
 	}

 	if (!defined $hash) {
--
1.6.4

--
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]