Return http statuscode 404 on unknown branch

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
Lars Hjemli 2009-06-07 20:43:08 +02:00
parent 45e7fcecc1
commit e429fb0cca
3 changed files with 6 additions and 0 deletions

2
cgit.c
View File

@ -285,6 +285,8 @@ static int prepare_repo_cmd(struct cgit_context *ctx)
if (get_sha1(ctx->qry.head, sha1)) { if (get_sha1(ctx->qry.head, sha1)) {
tmp = xstrdup(ctx->qry.head); tmp = xstrdup(ctx->qry.head);
ctx->qry.head = ctx->repo->defbranch; ctx->qry.head = ctx->repo->defbranch;
ctx->page.status = 404;
ctx->page.statusmsg = "not found";
cgit_print_http_headers(ctx); cgit_print_http_headers(ctx);
cgit_print_docstart(ctx); cgit_print_docstart(ctx);
cgit_print_pageheader(ctx); cgit_print_pageheader(ctx);

2
cgit.h
View File

@ -181,6 +181,8 @@ struct cgit_page {
char *charset; char *charset;
char *filename; char *filename;
char *title; char *title;
int status;
char *statusmsg;
}; };
struct cgit_context { struct cgit_context {

View File

@ -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)
{ {
if (ctx->page.status)
htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg);
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);