about summary refs log tree commit diff
path: root/ui-shared.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 /ui-shared.c
parentMerge branch 'rt/plain-binary' (diff)
parentAdd support for HEAD requests (diff)
downloadcgit-pink-681fdc45473143de3f3c5f69fbc7b94f5d6b0b75.tar.gz
cgit-pink-681fdc45473143de3f3c5f69fbc7b94f5d6b0b75.zip
Merge branch 'plain-etag'
Conflicts:
	ui-shared.c
Diffstat (limited to 'ui-shared.c')
-rw-r--r--ui-shared.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 29036d0..10be3c0 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -467,6 +467,8 @@ void cgit_print_age(time_t t, time_t max_relative, char *format)
 
 void cgit_print_http_headers(struct cgit_context *ctx)
 {
+	const char *method = getenv("REQUEST_METHOD");
+
 	if (ctx->page.status)
 		htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg);
 	if (ctx->page.mimetype && ctx->page.charset)
@@ -481,7 +483,11 @@ void cgit_print_http_headers(struct cgit_context *ctx)
 		      ctx->page.filename);
 	htmlf("Last-Modified: %s\n", http_date(ctx->page.modified));
 	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)