mirror of
https://git.zx2c4.com/cgit
synced 2024-11-26 02:18:42 +00:00
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>
This commit is contained in:
parent
488a214a81
commit
3ff58ddd51
3
cgit.c
3
cgit.c
@ -430,6 +430,7 @@ static int calc_ttl()
|
|||||||
int main(int argc, const char **argv)
|
int main(int argc, const char **argv)
|
||||||
{
|
{
|
||||||
const char *cgit_config_env = getenv("CGIT_CONFIG");
|
const char *cgit_config_env = getenv("CGIT_CONFIG");
|
||||||
|
const char *method = getenv("REQUEST_METHOD");
|
||||||
const char *path;
|
const char *path;
|
||||||
char *qry;
|
char *qry;
|
||||||
int err, ttl;
|
int err, ttl;
|
||||||
@ -476,6 +477,8 @@ int main(int argc, const char **argv)
|
|||||||
|
|
||||||
ttl = calc_ttl();
|
ttl = calc_ttl();
|
||||||
ctx.page.expires += ttl*60;
|
ctx.page.expires += ttl*60;
|
||||||
|
if (method && !strcmp(method, "HEAD"))
|
||||||
|
ctx.cfg.nocache = 1;
|
||||||
if (ctx.cfg.nocache)
|
if (ctx.cfg.nocache)
|
||||||
ctx.cfg.cache_size = 0;
|
ctx.cfg.cache_size = 0;
|
||||||
err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root,
|
err = cache_process(ctx.cfg.cache_size, ctx.cfg.cache_root,
|
||||||
|
@ -456,6 +456,8 @@ void cgit_print_age(time_t t, time_t max_relative, char *format)
|
|||||||
|
|
||||||
void cgit_print_http_headers(struct cgit_context *ctx)
|
void cgit_print_http_headers(struct cgit_context *ctx)
|
||||||
{
|
{
|
||||||
|
const char *method = getenv("REQUEST_METHOD");
|
||||||
|
|
||||||
if (ctx->page.mimetype && ctx->page.charset)
|
if (ctx->page.mimetype && ctx->page.charset)
|
||||||
htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype,
|
htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype,
|
||||||
ctx->page.charset);
|
ctx->page.charset);
|
||||||
@ -471,6 +473,8 @@ void cgit_print_http_headers(struct cgit_context *ctx)
|
|||||||
if (ctx->page.etag)
|
if (ctx->page.etag)
|
||||||
htmlf("ETag: \"%s\"\n", ctx->page.etag);
|
htmlf("ETag: \"%s\"\n", ctx->page.etag);
|
||||||
html("\n");
|
html("\n");
|
||||||
|
if (method && !strcmp(method, "HEAD"))
|
||||||
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cgit_print_docstart(struct cgit_context *ctx)
|
void cgit_print_docstart(struct cgit_context *ctx)
|
||||||
|
Loading…
Reference in New Issue
Block a user