cgit: use cgit_print_error_page() where appropriate

These are more-or-less one-to-one translations but in the final hunk we
gain an HTTP error code where we used to send "200 OK", which is an
improvement.

Signed-off-by: John Keeping <john@keeping.me.uk>
This commit is contained in:
John Keeping 2015-08-14 12:47:02 +01:00 committed by Jason A. Donenfeld
parent aec1204a54
commit e9b71ae6fe

27
cgit.c
View File

@ -614,13 +614,8 @@ static int prepare_repo_cmd(void)
if (get_sha1(ctx.qry.head, sha1)) { if (get_sha1(ctx.qry.head, sha1)) {
char *tmp = xstrdup(ctx.qry.head); char *tmp = xstrdup(ctx.qry.head);
ctx.qry.head = ctx.repo->defbranch; ctx.qry.head = ctx.repo->defbranch;
ctx.page.status = 404; cgit_print_error_page(404, "Not found",
ctx.page.statusmsg = "Not found"; "Invalid branch: %s", tmp);
cgit_print_http_headers();
cgit_print_docstart();
cgit_print_pageheader();
cgit_print_error("Invalid branch: %s", tmp);
cgit_print_docend();
free(tmp); free(tmp);
return 1; return 1;
} }
@ -713,18 +708,13 @@ static void process_request(void)
cmd = cgit_get_cmd(); cmd = cgit_get_cmd();
if (!cmd) { if (!cmd) {
ctx.page.title = "cgit error"; ctx.page.title = "cgit error";
ctx.page.status = 404; cgit_print_error_page(404, "Not found", "Invalid request");
ctx.page.statusmsg = "Not found";
cgit_print_http_headers();
cgit_print_docstart();
cgit_print_pageheader();
cgit_print_error("Invalid request");
cgit_print_docend();
return; return;
} }
if (!ctx.cfg.enable_http_clone && cmd->is_clone) { if (!ctx.cfg.enable_http_clone && cmd->is_clone) {
html_status(404, "Not found", 0); ctx.page.title = "cgit error";
cgit_print_error_page(404, "Not found", "Invalid request");
return; return;
} }
@ -735,11 +725,8 @@ static void process_request(void)
ctx.qry.vpath = cmd->want_vpath ? ctx.qry.path : NULL; ctx.qry.vpath = cmd->want_vpath ? ctx.qry.path : NULL;
if (cmd->want_repo && !ctx.repo) { if (cmd->want_repo && !ctx.repo) {
cgit_print_http_headers(); cgit_print_error_page(400, "Bad request",
cgit_print_docstart(); "No repository selected");
cgit_print_pageheader();
cgit_print_error("No repository selected");
cgit_print_docend();
return; return;
} }