From d1659a558594908a73d9e85e3dcab402f2768b10 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 31 Dec 2012 17:27:55 +0100 Subject: [PATCH] add 404 error support --- file.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/file.c b/file.c index 5ba659f..fa37155 100644 --- a/file.c +++ b/file.c @@ -618,18 +618,25 @@ static void uh_file_request(struct client *cl, struct path_info *pi) cl->data.file.hdr = NULL; } -void uh_handle_file_request(struct client *cl) +static bool __handle_file_request(struct client *cl, const char *url) { struct path_info *pi; - pi = uh_path_lookup(cl, cl->request.url); - if (!pi) { - uh_request_done(cl); - return; - } + pi = uh_path_lookup(cl, url); + if (!pi) + return false; + + if (!pi->redirected) + uh_file_request(cl, pi); - if (pi->redirected) + return true; +} + +void uh_handle_file_request(struct client *cl) +{ + if (__handle_file_request(cl, cl->request.url) || + __handle_file_request(cl, conf.error_handler)) return; - uh_file_request(cl, pi); + uh_client_error(cl, 404, "Not Found", "No such file or directory"); } -- 2.30.2