X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/5e447b1ed1aa751e8ec93dccf4df6fa4a7ffddb6..542f6a433034935a1aa895f7ef3273968915a5d1:/cgit.c diff --git a/cgit.c b/cgit.c index 64d95f9..513ea12 100644 --- a/cgit.c +++ b/cgit.c @@ -31,6 +31,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.favicon = xstrdup(value); else if (!strcmp(name, "footer")) ctx.cfg.footer = xstrdup(value); + else if (!strcmp(name, "head-include")) + ctx.cfg.head_include = xstrdup(value); else if (!strcmp(name, "header")) ctx.cfg.header = xstrdup(value); else if (!strcmp(name, "logo")) @@ -206,6 +208,7 @@ static void prepare_context(struct cgit_context *ctx) ctx->page.size = 0; ctx->page.modified = time(NULL); ctx->page.expires = ctx->page.modified; + ctx->page.etag = NULL; } struct refmatch { @@ -285,6 +288,8 @@ static int prepare_repo_cmd(struct cgit_context *ctx) if (get_sha1(ctx->qry.head, sha1)) { tmp = xstrdup(ctx->qry.head); ctx->qry.head = ctx->repo->defbranch; + ctx->page.status = 404; + ctx->page.statusmsg = "not found"; cgit_print_http_headers(ctx); cgit_print_docstart(ctx); cgit_print_pageheader(ctx); @@ -429,6 +434,7 @@ static int calc_ttl() int main(int argc, const char **argv) { const char *cgit_config_env = getenv("CGIT_CONFIG"); + const char *method = getenv("REQUEST_METHOD"); const char *path; char *qry; int err, ttl; @@ -475,6 +481,8 @@ int main(int argc, const char **argv) ttl = calc_ttl(); ctx.page.expires += ttl*60; + if (method && !strcmp(method, "HEAD")) + ctx.cfg.nocache = 1; if (ctx.cfg.nocache) ctx.cfg.cache_size = 0; err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root,