aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.c
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 /cgit.c
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>
Diffstat (limited to 'cgit.c')
-rw-r--r--cgit.c8
1 files changed, 8 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).