summary refs log tree commit diff
path: root/cgit.c
diff options
context:
space:
mode:
authorLars Hjemli <hjemli@gmail.com>2009-07-25 11:59:22 +0200
committerLars Hjemli <hjemli@gmail.com>2009-07-25 11:59:22 +0200
commit681fdc45473143de3f3c5f69fbc7b94f5d6b0b75 (patch)
tree3bfca05875524bee0e5444fb791707bc3e593dbd /cgit.c
parent7e5c048505efe1902fb476cc2cb3160ff7df013d (diff)
parent3ff58ddd51bcbcbc9b7649bad1a39aa98af4b49f (diff)
Merge branch 'plain-etag'
Conflicts:
	ui-shared.c
Diffstat (limited to 'cgit.c')
-rw-r--r--cgit.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index 19adadd..ae20257 100644
--- a/cgit.c
+++ b/cgit.c
@@ -206,6 +206,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 {
@@ -431,6 +432,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;
@@ -477,6 +479,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,