diff options
Diffstat (limited to 'cgit.c')
-rw-r--r-- | cgit.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -31,6 +31,8 @@ void config_cb(const char *name, const char *value) | |||
31 | ctx.cfg.favicon = xstrdup(value); | 31 | ctx.cfg.favicon = xstrdup(value); |
32 | else if (!strcmp(name, "footer")) | 32 | else if (!strcmp(name, "footer")) |
33 | ctx.cfg.footer = xstrdup(value); | 33 | ctx.cfg.footer = xstrdup(value); |
34 | else if (!strcmp(name, "head-include")) | ||
35 | ctx.cfg.head_include = xstrdup(value); | ||
34 | else if (!strcmp(name, "header")) | 36 | else if (!strcmp(name, "header")) |
35 | ctx.cfg.header = xstrdup(value); | 37 | ctx.cfg.header = xstrdup(value); |
36 | else if (!strcmp(name, "logo")) | 38 | else if (!strcmp(name, "logo")) |
@@ -210,6 +212,7 @@ static void prepare_context(struct cgit_context *ctx) | |||
210 | ctx->page.size = 0; | 212 | ctx->page.size = 0; |
211 | ctx->page.modified = time(NULL); | 213 | ctx->page.modified = time(NULL); |
212 | ctx->page.expires = ctx->page.modified; | 214 | ctx->page.expires = ctx->page.modified; |
215 | ctx->page.etag = NULL; | ||
213 | } | 216 | } |
214 | 217 | ||
215 | struct refmatch { | 218 | struct refmatch { |
@@ -289,6 +292,8 @@ static int prepare_repo_cmd(struct cgit_context *ctx) | |||
289 | if (get_sha1(ctx->qry.head, sha1)) { | 292 | if (get_sha1(ctx->qry.head, sha1)) { |
290 | tmp = xstrdup(ctx->qry.head); | 293 | tmp = xstrdup(ctx->qry.head); |
291 | ctx->qry.head = ctx->repo->defbranch; | 294 | ctx->qry.head = ctx->repo->defbranch; |
295 | ctx->page.status = 404; | ||
296 | ctx->page.statusmsg = "not found"; | ||
292 | cgit_print_http_headers(ctx); | 297 | cgit_print_http_headers(ctx); |
293 | cgit_print_docstart(ctx); | 298 | cgit_print_docstart(ctx); |
294 | cgit_print_pageheader(ctx); | 299 | cgit_print_pageheader(ctx); |
@@ -433,6 +438,7 @@ static int calc_ttl() | |||
433 | int main(int argc, const char **argv) | 438 | int main(int argc, const char **argv) |
434 | { | 439 | { |
435 | const char *cgit_config_env = getenv("CGIT_CONFIG"); | 440 | const char *cgit_config_env = getenv("CGIT_CONFIG"); |
441 | const char *method = getenv("REQUEST_METHOD"); | ||
436 | const char *path; | 442 | const char *path; |
437 | char *qry; | 443 | char *qry; |
438 | int err, ttl; | 444 | int err, ttl; |
@@ -479,6 +485,8 @@ int main(int argc, const char **argv) | |||
479 | 485 | ||
480 | ttl = calc_ttl(); | 486 | ttl = calc_ttl(); |
481 | ctx.page.expires += ttl*60; | 487 | ctx.page.expires += ttl*60; |
488 | if (method && !strcmp(method, "HEAD")) | ||
489 | ctx.cfg.nocache = 1; | ||
482 | if (ctx.cfg.nocache) | 490 | if (ctx.cfg.nocache) |
483 | ctx.cfg.cache_size = 0; | 491 | ctx.cfg.cache_size = 0; |
484 | err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root, | 492 | err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root, |