From efd4a1434eb498506a392902b682ab546834f586 Mon Sep 17 00:00:00 2001 From: Philip Munaawa Date: Tue, 24 Apr 2018 15:53:08 +0100 Subject: [PATCH] return 404 for missing resources --- src/server/kiwix-serve.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/server/kiwix-serve.cpp b/src/server/kiwix-serve.cpp index 9d05f53..6adaf4e 100644 --- a/src/server/kiwix-serve.cpp +++ b/src/server/kiwix-serve.cpp @@ -443,7 +443,7 @@ static struct MHD_Response* handle_suggest(RequestContext* request) humanReadableBookId = request->get_argument("content"); term = request->get_argument("term"); } catch (const std::out_of_range&) { - return build_homepage(request); + return build_404(request, ""); } if (isVerbose.load()) { @@ -628,12 +628,12 @@ static struct MHD_Response* handle_random(RequestContext* request) try { humanReadableBookId = request->get_argument("content"); } catch (const std::out_of_range&) { - return build_homepage(request); + return build_404(request, ""); } auto reader = get_from_humanReadableBookId(humanReadableBookId).first; if (reader == nullptr) { - return build_homepage(request); + return build_404(request, ""); } try { @@ -728,7 +728,11 @@ static struct MHD_Response* handle_content(RequestContext* request) auto reader = get_from_humanReadableBookId(humanReadableBookId).first; if (reader == nullptr) { - return build_homepage(request); + if (humanReadableBookId.size() == 0){ + return build_homepage(request); + } else { + return build_404(request, ""); + } } auto urlStr = request->get_url().substr(humanReadableBookId.size()+1); @@ -842,7 +846,7 @@ static int accessHandlerCallback(void* cls, request.httpResponseCode = request.has_range() ? MHD_HTTP_PARTIAL_CONTENT : MHD_HTTP_OK; if (! request.is_valid_url()) { - response = build_homepage(&request); + response = build_404(&request, ""); } else { if (startswith(request.get_url(), "/skin/")) { response = handle_skin(&request);