aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.c
diff options
context:
space:
mode:
authorDan McGee <dpmcgee@gmail.com>2011-01-12 12:06:07 -0600
committerLars Hjemli <hjemli@gmail.com>2011-02-19 15:00:18 +0100
commit42231328d3fa1e443566a5d8e6c3ccbce16157b6 (patch)
tree5d1cc79305eadaa3c424f2ef3afa8b096d1f9503 /cgit.c
parent35d33014fb897cac24f2ae42d8a2d9e005938bd9 (diff)
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)
ctx.cfg.enable_filter_overrides = atoi(value);
else if (!strcmp(name, "enable-gitweb-owner"))
ctx.cfg.enable_gitweb_owner = atoi(value);
+ else if (!strcmp(name, "enable-http-clone"))
+ ctx.cfg.enable_http_clone = atoi(value);
else if (!strcmp(name, "enable-index-links"))
ctx.cfg.enable_index_links = atoi(value);
else if (!strcmp(name, "enable-log-filecount"))
@@ -300,6 +302,7 @@ static void prepare_context(struct cgit_context *ctx)
ctx->cfg.logo = "/cgit.png";
ctx->cfg.local_time = 0;
ctx->cfg.enable_gitweb_owner = 1;
+ ctx->cfg.enable_http_clone = 1;
ctx->cfg.enable_tree_linenumbers = 1;
ctx->cfg.max_repo_count = 50;
ctx->cfg.max_commit_count = 50;
@@ -453,6 +456,11 @@ static void process_request(void *cbdata)
return;
}
+ if (!ctx->cfg.enable_http_clone && cmd->is_clone) {
+ html_status(404, "Not found", 0);
+ return;
+ }
+
/* If cmd->want_vpath is set, assume ctx->qry.path contains a "virtual"
* in-project path limit to be made available at ctx->qry.vpath.
* Otherwise, no path limit is in effect (ctx->qry.vpath = NULL).