all repos — cgit @ 3ff58ddd51bcbcbc9b7649bad1a39aa98af4b49f

a hyperfast web frontend for git written in c

Add support for HEAD requests

This is a quick 'n dirty hack which makes cgit honor HEAD requests.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Lars Hjemli hjemli@gmail.com
Thu, 19 Feb 2009 23:24:15 +0100
commit

3ff58ddd51bcbcbc9b7649bad1a39aa98af4b49f

parent

488a214a81a25c6397c56822ed1713f51dddc520

2 files changed, 7 insertions(+), 0 deletions(-)

jump to
M cgit.ccgit.c

@@ -430,6 +430,7 @@

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;

@@ -476,6 +477,8 @@ }

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,
M ui-shared.cui-shared.c

@@ -456,6 +456,8 @@ }

void cgit_print_http_headers(struct cgit_context *ctx) { + const char *method = getenv("REQUEST_METHOD"); + if (ctx->page.mimetype && ctx->page.charset) htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype, ctx->page.charset);

@@ -471,6 +473,8 @@ htmlf("Expires: %s\n", http_date(ctx->page.expires));

if (ctx->page.etag) htmlf("ETag: \"%s\"\n", ctx->page.etag); html("\n"); + if (method && !strcmp(method, "HEAD")) + exit(0); } void cgit_print_docstart(struct cgit_context *ctx)