]> git.cameronkatri.com Git - cgit.git/blobdiff - cgit.c
Merge branch 'plain-etag'
[cgit.git] / cgit.c
diff --git a/cgit.c b/cgit.c
index 19adadd2e3a9277aa25916eb1747ee3cbae63f75..ae2025709a05b4f888e9fc090005c5a1a9ed10be 100644 (file)
--- 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,