]> git.cameronkatri.com Git - cgit.git/blobdiff - cgit.c
Add support for HEAD requests
[cgit.git] / cgit.c
diff --git a/cgit.c b/cgit.c
index 608cab658425e5c11270ac3d1690a842eec71891..dc1c2e453de7ecb880df9d89a125196a66ad58eb 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -31,6 +31,8 @@ void config_cb(const char *name, const char *value)
                ctx.cfg.favicon = xstrdup(value);
        else if (!strcmp(name, "footer"))
                ctx.cfg.footer = xstrdup(value);
+       else if (!strcmp(name, "header"))
+               ctx.cfg.header = xstrdup(value);
        else if (!strcmp(name, "logo"))
                ctx.cfg.logo = xstrdup(value);
        else if (!strcmp(name, "index-header"))
@@ -204,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 {
@@ -427,6 +430,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;
@@ -473,6 +477,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,