Diffstat (limited to 'cgit.c')
| -rw-r--r-- | cgit.c | 50 |
1 files changed, 11 insertions, 39 deletions
@@ -26,33 +26,18 @@ void add_mimetype(const char *name, const char *value) item->util = xstrdup(value); } -struct cgit_filter *new_filter(const char *cmd, filter_type filtertype) +struct cgit_filter *new_filter(const char *cmd, int extra_args) { struct cgit_filter *f; - int args_size = 0; - int extra_args; if (!cmd || !cmd[0]) return NULL; - switch (filtertype) { - case SOURCE: - extra_args = 1; - break; - - case ABOUT: - case COMMIT: - default: - extra_args = 0; - break; - } - f = xmalloc(sizeof(struct cgit_filter)); f->cmd = xstrdup(cmd); - args_size = (2 + extra_args) * sizeof(char *); - f->argv = xmalloc(args_size); - memset(f->argv, 0, args_size); + f->argv = xmalloc((2 + extra_args) * sizeof(char *)); f->argv[0] = f->cmd; + f->argv[1] = NULL; return f; } @@ -96,11 +81,11 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value) repo->logo_link = xstrdup(value); else if (ctx.cfg.enable_filter_overrides) { if (!strcmp(name, "about-filter")) - repo->about_filter = new_filter(value, ABOUT); + repo->about_filter = new_filter(value, 0); else if (!strcmp(name, "commit-filter")) - repo->commit_filter = new_filter(value, COMMIT); + repo->commit_filter = new_filter(value, 0); else if (!strcmp(name, "source-filter")) - repo->source_filter = new_filter(value, SOURCE); + repo->source_filter = new_filter(value, 1); } } @@ -160,8 +145,6 @@ 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")) @@ -193,9 +176,9 @@ void config_cb(const char *name, const char *value) else if (!strcmp(name, "cache-dynamic-ttl")) ctx.cfg.cache_dynamic_ttl = atoi(value); else if (!strcmp(name, "about-filter")) - ctx.cfg.about_filter = new_filter(value, ABOUT); + ctx.cfg.about_filter = new_filter(value, 0); else if (!strcmp(name, "commit-filter")) - ctx.cfg.commit_filter = new_filter(value, COMMIT); + ctx.cfg.commit_filter = new_filter(value, 0); else if (!strcmp(name, "embedded")) ctx.cfg.embedded = atoi(value); else if (!strcmp(name, "max-atom-items")) @@ -225,7 +208,7 @@ void config_cb(const char *name, const char *value) else if (!strcmp(name, "section-from-path")) ctx.cfg.section_from_path = atoi(value); else if (!strcmp(name, "source-filter")) - ctx.cfg.source_filter = new_filter(value, SOURCE); + ctx.cfg.source_filter = new_filter(value, 1); else if (!strcmp(name, "summary-log")) ctx.cfg.summary_log = atoi(value); else if (!strcmp(name, "summary-branches")) @@ -327,7 +310,6 @@ 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; @@ -455,7 +437,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); @@ -474,8 +456,6 @@ 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); @@ -484,11 +464,6 @@ 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). @@ -780,11 +755,8 @@ int main(int argc, const char **argv) * that virtual-root equals SCRIPT_NAME, minus any possibly * trailing slashes. */ - if (!ctx.cfg.virtual_root && ctx.cfg.script_name) { + if (!ctx.cfg.virtual_root) ctx.cfg.virtual_root = trim_end(ctx.cfg.script_name, '/'); - if (!ctx.cfg.virtual_root) - ctx.cfg.virtual_root = ""; - } /* If no url parameter is specified on the querystring, lets * use PATH_INFO as url. This allows cgit to work with virtual |