about summary refs log tree commit diff stats
path: root/cgit.c
diff options
context:
space:
mode:
authorDan McGee2011-01-12 12:06:07 -0600
committerLars Hjemli2011-02-19 15:00:18 +0100
commit42231328d3fa1e443566a5d8e6c3ccbce16157b6 (patch)
tree5d1cc79305eadaa3c424f2ef3afa8b096d1f9503 /cgit.c
parentAdd is_clone flag to available commands (diff)
downloadcgit-42231328d3fa1e443566a5d8e6c3ccbce16157b6.tar.gz
cgit-42231328d3fa1e443566a5d8e6c3ccbce16157b6.zip
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).