Merge branch 'dm/disable-clone'
Šī revīzija ir iekļauta:
revīzija
4837fddc35
12
cgit.c
12
cgit.c
@ -147,6 +147,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-commit-graph"))
|
||||
@ -312,6 +314,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;
|
||||
@ -439,7 +442,7 @@ static int prepare_repo_cmd(struct cgit_context *ctx)
|
||||
tmp = xstrdup(ctx->qry.head);
|
||||
ctx->qry.head = ctx->repo->defbranch;
|
||||
ctx->page.status = 404;
|
||||
ctx->page.statusmsg = "not found";
|
||||
ctx->page.statusmsg = "Not found";
|
||||
cgit_print_http_headers(ctx);
|
||||
cgit_print_docstart(ctx);
|
||||
cgit_print_pageheader(ctx);
|
||||
@ -458,6 +461,8 @@ static void process_request(void *cbdata)
|
||||
cmd = cgit_get_cmd(ctx);
|
||||
if (!cmd) {
|
||||
ctx->page.title = "cgit error";
|
||||
ctx->page.status = 404;
|
||||
ctx->page.statusmsg = "Not found";
|
||||
cgit_print_http_headers(ctx);
|
||||
cgit_print_docstart(ctx);
|
||||
cgit_print_pageheader(ctx);
|
||||
@ -466,6 +471,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).
|
||||
|
1
cgit.h
1
cgit.h
@ -191,6 +191,7 @@ struct cgit_config {
|
||||
int embedded;
|
||||
int enable_filter_overrides;
|
||||
int enable_gitweb_owner;
|
||||
int enable_http_clone;
|
||||
int enable_index_links;
|
||||
int enable_commit_graph;
|
||||
int enable_log_filecount;
|
||||
|
@ -105,6 +105,11 @@ enable-gitweb-owner::
|
||||
for the git config value "gitweb.owner" to determine the owner.
|
||||
Default value: "1". See also: scan-path.
|
||||
|
||||
enable-http-clone::
|
||||
If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
|
||||
If you use an alternate way of serving git repositories, you may wish
|
||||
to disable this. Default value: "1".
|
||||
|
||||
enable-index-links::
|
||||
Flag which, when set to "1", will make cgit generate extra links for
|
||||
each repo in the repository index (specifically, to the "summary",
|
||||
|
42
cmd.c
42
cmd.c
@ -130,31 +130,31 @@ static void tree_fn(struct cgit_context *ctx)
|
||||
cgit_print_tree(ctx->qry.sha1, ctx->qry.path);
|
||||
}
|
||||
|
||||
#define def_cmd(name, want_repo, want_layout, want_vpath) \
|
||||
{#name, name##_fn, want_repo, want_layout, want_vpath}
|
||||
#define def_cmd(name, want_repo, want_layout, want_vpath, is_clone) \
|
||||
{#name, name##_fn, want_repo, want_layout, want_vpath, is_clone}
|
||||
|
||||
struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx)
|
||||
{
|
||||
static struct cgit_cmd cmds[] = {
|
||||
def_cmd(HEAD, 1, 0, 0),
|
||||
def_cmd(atom, 1, 0, 0),
|
||||
def_cmd(about, 0, 1, 0),
|
||||
def_cmd(blob, 1, 0, 0),
|
||||
def_cmd(commit, 1, 1, 1),
|
||||
def_cmd(diff, 1, 1, 1),
|
||||
def_cmd(info, 1, 0, 0),
|
||||
def_cmd(log, 1, 1, 1),
|
||||
def_cmd(ls_cache, 0, 0, 0),
|
||||
def_cmd(objects, 1, 0, 0),
|
||||
def_cmd(patch, 1, 0, 1),
|
||||
def_cmd(plain, 1, 0, 0),
|
||||
def_cmd(refs, 1, 1, 0),
|
||||
def_cmd(repolist, 0, 0, 0),
|
||||
def_cmd(snapshot, 1, 0, 0),
|
||||
def_cmd(stats, 1, 1, 1),
|
||||
def_cmd(summary, 1, 1, 0),
|
||||
def_cmd(tag, 1, 1, 0),
|
||||
def_cmd(tree, 1, 1, 1),
|
||||
def_cmd(HEAD, 1, 0, 0, 1),
|
||||
def_cmd(atom, 1, 0, 0, 0),
|
||||
def_cmd(about, 0, 1, 0, 0),
|
||||
def_cmd(blob, 1, 0, 0, 0),
|
||||
def_cmd(commit, 1, 1, 1, 0),
|
||||
def_cmd(diff, 1, 1, 1, 0),
|
||||
def_cmd(info, 1, 0, 0, 1),
|
||||
def_cmd(log, 1, 1, 1, 0),
|
||||
def_cmd(ls_cache, 0, 0, 0, 0),
|
||||
def_cmd(objects, 1, 0, 0, 1),
|
||||
def_cmd(patch, 1, 0, 1, 0),
|
||||
def_cmd(plain, 1, 0, 0, 0),
|
||||
def_cmd(refs, 1, 1, 0, 0),
|
||||
def_cmd(repolist, 0, 0, 0, 0),
|
||||
def_cmd(snapshot, 1, 0, 0, 0),
|
||||
def_cmd(stats, 1, 1, 1, 0),
|
||||
def_cmd(summary, 1, 1, 0, 0),
|
||||
def_cmd(tag, 1, 1, 0, 0),
|
||||
def_cmd(tree, 1, 1, 1, 0),
|
||||
};
|
||||
int i;
|
||||
|
||||
|
3
cmd.h
3
cmd.h
@ -8,7 +8,8 @@ struct cgit_cmd {
|
||||
cgit_cmd_fn fn;
|
||||
unsigned int want_repo:1,
|
||||
want_layout:1,
|
||||
want_vpath:1;
|
||||
want_vpath:1,
|
||||
is_clone:1;
|
||||
};
|
||||
|
||||
extern struct cgit_cmd *cgit_get_cmd(struct cgit_context *ctx);
|
||||
|
Notiek ielāde…
Atsaukties uz šo jaunā problēmā
Block a user