aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dan McGee <dpmcgee@gmail.com>2011-01-13 03:06:07 (JST)
committerGravatar Lars Hjemli <hjemli@gmail.com>2011-02-19 23:00:18 (JST)
commit42231328d3fa1e443566a5d8e6c3ccbce16157b6 (patch)
tree5d1cc79305eadaa3c424f2ef3afa8b096d1f9503
parent35d33014fb897cac24f2ae42d8a2d9e005938bd9 (diff)
downloadcgit-42231328d3fa1e443566a5d8e6c3ccbce16157b6.zip
cgit-42231328d3fa1e443566a5d8e6c3ccbce16157b6.tar.gz
Allow disabling of HTTP clone URLs
If advertising other URLs to your users, you may not want to make this available through cgit (e.g. if you have the smart HTTP transport set up elsewhere). Allow disabling the three magic commands that simulate the git server, but default it to enabled. Signed-off-by: Dan McGee <dpmcgee@gmail.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--cgit.c8
-rw-r--r--cgit.h1
-rw-r--r--cgitrc.5.txt5
3 files changed, 14 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 412fbf0..65fad7a 100644
--- a/cgit.c
+++ b/cgit.c
@@ -139,6 +139,8 @@ void config_cb(const char *name, const char *value)
139 ctx.cfg.enable_filter_overrides = atoi(value); 139 ctx.cfg.enable_filter_overrides = atoi(value);
140 else if (!strcmp(name, "enable-gitweb-owner")) 140 else if (!strcmp(name, "enable-gitweb-owner"))
141 ctx.cfg.enable_gitweb_owner = atoi(value); 141 ctx.cfg.enable_gitweb_owner = atoi(value);
142 else if (!strcmp(name, "enable-http-clone"))
143 ctx.cfg.enable_http_clone = atoi(value);
142 else if (!strcmp(name, "enable-index-links")) 144 else if (!strcmp(name, "enable-index-links"))
143 ctx.cfg.enable_index_links = atoi(value); 145 ctx.cfg.enable_index_links = atoi(value);
144 else if (!strcmp(name, "enable-log-filecount")) 146 else if (!strcmp(name, "enable-log-filecount"))
@@ -300,6 +302,7 @@ static void prepare_context(struct cgit_context *ctx)
300 ctx->cfg.logo = "/cgit.png"; 302 ctx->cfg.logo = "/cgit.png";
301 ctx->cfg.local_time = 0; 303 ctx->cfg.local_time = 0;
302 ctx->cfg.enable_gitweb_owner = 1; 304 ctx->cfg.enable_gitweb_owner = 1;
305 ctx->cfg.enable_http_clone = 1;
303 ctx->cfg.enable_tree_linenumbers = 1; 306 ctx->cfg.enable_tree_linenumbers = 1;
304 ctx->cfg.max_repo_count = 50; 307 ctx->cfg.max_repo_count = 50;
305 ctx->cfg.max_commit_count = 50; 308 ctx->cfg.max_commit_count = 50;
@@ -453,6 +456,11 @@ static void process_request(void *cbdata)
453 return; 456 return;
454 } 457 }
455 458
459 if (!ctx->cfg.enable_http_clone && cmd->is_clone) {
460 html_status(404, "Not found", 0);
461 return;
462 }
463
456 /* If cmd->want_vpath is set, assume ctx->qry.path contains a "virtual" 464 /* If cmd->want_vpath is set, assume ctx->qry.path contains a "virtual"
457 * in-project path limit to be made available at ctx->qry.vpath. 465 * in-project path limit to be made available at ctx->qry.vpath.
458 * Otherwise, no path limit is in effect (ctx->qry.vpath = NULL). 466 * Otherwise, no path limit is in effect (ctx->qry.vpath = NULL).
diff --git a/cgit.h b/cgit.h
index f5f68ac..c119712 100644
--- a/cgit.h
+++ b/cgit.h
@@ -187,6 +187,7 @@ struct cgit_config {
187 int embedded; 187 int embedded;
188 int enable_filter_overrides; 188 int enable_filter_overrides;
189 int enable_gitweb_owner; 189 int enable_gitweb_owner;
190 int enable_http_clone;
190 int enable_index_links; 191 int enable_index_links;
191 int enable_log_filecount; 192 int enable_log_filecount;
192 int enable_log_linecount; 193 int enable_log_linecount;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index 8e51ca5..b8c69b8 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -100,6 +100,11 @@ enable-gitweb-owner::
100 for the git config value "gitweb.owner" to determine the owner. 100 for the git config value "gitweb.owner" to determine the owner.
101 Default value: "1". See also: scan-path. 101 Default value: "1". See also: scan-path.
102 102
103enable-http-clone::
104 If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
105 If you use an alternate way of serving git repositories, you may wish
106 to disable this. Default value: "1".
107
103enable-index-links:: 108enable-index-links::
104 Flag which, when set to "1", will make cgit generate extra links for 109 Flag which, when set to "1", will make cgit generate extra links for
105 each repo in the repository index (specifically, to the "summary", 110 each repo in the repository index (specifically, to the "summary",