{"thread":{"id":"20403","subject":"[PATCHv4 2/3] gitweb: support to globally disable a snapshot format","startedAt":"2009-08-05T13:19:53Z","lastAt":"2009-08-05T13:19:53Z","messageCount":1,"participants":["Mark A Rada"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"119613","messageId":"CDA93DD6-D1FA-4F8A-84D8-FA9A8493FBF9@uwaterloo.ca","threadId":"20403","inReplyTo":null,"subject":"[PATCHv4 2/3] gitweb: support to globally disable a snapshot format","fromName":"Mark A Rada","fromEmail":"marada@uwaterloo.ca","sentAt":"2009-08-05T13:19:53Z","receivedAt":"2009-08-05T13:19:53Z","isPatch":false,"sender":{"key":"marada@uwaterloo.ca","avatar":"https://avatars.githubusercontent.com/u/38430?v=4"},"body":"Now XZ is disabled by default.\n\n\n--\nMark A Rada (ferrous26)\nmarada@uwaterloo.ca\n\n\n------->8------------\nFrom: Mark Rada <marada@uwaterloo.ca>\nDate: Sat, 1 Aug 2009 13:24:03 -0400\nSubject: [PATCH 2/3] gitweb: support to globally disable a snapshot  \nformat\n\nI added an optional variable, 'disabled', to to the\n$known_snapshot_formats keys so that a Gitweb administrator can\nglobally enable or disable a specific format for snapshots.\n\nAll formats are enabled by default, except for the txz format\n(explained below), because project specific overriding is disabled by\ndefault.\n\nThe txz format is disabled as it is still new and has relatively high\nresource requirements (ref. 4f1c1fb73b4cdaf4bcf817fb2af99bd71f1ca61f).\n\nSigned-off-by: Mark Rada <marada@uwaterloo.ca>\n---\n  gitweb/gitweb.perl |   11 ++++++++---\n  1 files changed, 8 insertions(+), 3 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex 3398163..5a628fa 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -160,7 +160,8 @@ our %known_snapshot_formats = (\n  \t# \t'suffix' => filename suffix,\n  \t# \t'format' => --format for git-archive,\n  \t# \t'compressor' => [compressor command and arguments]\n-\t# \t                (array reference, optional)}\n+\t# \t                (array reference, optional),\n+\t# \t'disabled' => boolean (optional)}\n  \t#\n  \t'tgz' => {\n  \t\t'display' => 'tar.gz',\n@@ -181,7 +182,8 @@ our %known_snapshot_formats = (\n  \t\t'type' => 'application/x-xz',\n  \t\t'suffix' => '.tar.xz',\n  \t\t'format' => 'tar',\n-\t\t'compressor' => ['xz']},\n+\t\t'compressor' => ['xz'],\n+\t\t'disabled' => 1},\n\n  \t'zip' => {\n  \t\t'display' => 'zip',\n@@ -502,7 +504,8 @@ sub filter_snapshot_fmts {\n  \t\texists $known_snapshot_format_aliases{$_} ?\n  \t\t       $known_snapshot_format_aliases{$_} : $_} @fmts;\n  \t@fmts = grep {\n-\t\texists $known_snapshot_formats{$_} } @fmts;\n+\t\texists $known_snapshot_formats{$_} &&\n+\t\t!$known_snapshot_formats{$_}{'disabled'}} @fmts;\n  }\n\n  our $GITWEB_CONFIG = $ENV{'GITWEB_CONFIG'} || \"++GITWEB_CONFIG++\";\n@@ -5171,6 +5174,8 @@ sub git_snapshot {\n  \t\tdie_error(400, \"Unknown snapshot format\");\n  \t} elsif (!grep($_ eq $format, @snapshot_fmts)) {\n  \t\tdie_error(403, \"Unsupported snapshot format\");\n+\t} elsif ($known_snapshot_formats{$format}{'disabled'}) {\n+\t\tdie_error(403, \"Snapshot format not allowed\");\n  \t}\n\n  \tif (!defined $hash) {\n-- \n1.6.4\n"}]}