From d5ae92e4e239e3780b29510354ba2a19d3a1c9c6 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Sun, 23 Jan 2022 21:57:10 +0400 Subject: [PATCH] More uses of HTTP404HtmlResponse --- src/server/internalServer.cpp | 18 ++++++++++++------ src/server/internalServer_catalog_v2.cpp | 12 ++++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 5f53b5d54..bc14851f9 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -278,8 +278,10 @@ MHD_Result InternalServer::handlerCallback(struct MHD_Connection* connection, std::unique_ptr InternalServer::handle_request(const RequestContext& request) { try { - if (! request.is_valid_url()) - return Response::build_404(*this, request.get_full_url()); + if (! request.is_valid_url()) { + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; + } const ETag etag = get_matching_if_none_match_etag(request); if ( etag ) @@ -476,7 +478,8 @@ std::unique_ptr InternalServer::handle_skin(const RequestContext& requ response->set_cacheable(); return std::move(response); } catch (const ResourceNotFound& e) { - return Response::build_404(*this, request.get_full_url()); + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; } } @@ -636,8 +639,10 @@ std::unique_ptr InternalServer::handle_captured_external(const Request source = kiwix::urlDecode(request.get_argument("source")); } catch (const std::out_of_range& e) {} - if (source.empty()) - return Response::build_404(*this, request.get_full_url()); + if (source.empty()) { + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; + } auto data = get_default_data(); data.set("source", source); @@ -855,7 +860,8 @@ std::unique_ptr InternalServer::handle_raw(const RequestContext& reque bookName = request.get_url_part(1); kind = request.get_url_part(2); } catch (const std::out_of_range& e) { - return Response::build_404(*this, request.get_full_url()); + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; } if (kind != "meta" && kind!= "content") { diff --git a/src/server/internalServer_catalog_v2.cpp b/src/server/internalServer_catalog_v2.cpp index cd678ba55..a5c9f49c8 100644 --- a/src/server/internalServer_catalog_v2.cpp +++ b/src/server/internalServer_catalog_v2.cpp @@ -43,7 +43,8 @@ std::unique_ptr InternalServer::handle_catalog_v2(const RequestContext try { url = request.get_url_part(2); } catch (const std::out_of_range&) { - return Response::build_404(*this, request.get_full_url()); + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; } if (url == "root.xml") { @@ -69,7 +70,8 @@ std::unique_ptr InternalServer::handle_catalog_v2(const RequestContext } else if (url == "illustration") { return handle_catalog_v2_illustration(request); } else { - return Response::build_404(*this, request.get_full_url()); + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; } } @@ -110,7 +112,8 @@ std::unique_ptr InternalServer::handle_catalog_v2_complete_entry(const try { mp_library->getBookById(entryId); } catch (const std::out_of_range&) { - return Response::build_404(*this, request.get_full_url()); + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; } OPDSDumper opdsDumper(mp_library); @@ -158,7 +161,8 @@ std::unique_ptr InternalServer::handle_catalog_v2_illustration(const R auto illustration = book.getIllustration(size); return ContentResponse::build(*this, illustration->getData(), illustration->mimeType); } catch(...) { - return Response::build_404(*this, request.get_full_url()); + return HTTP404HtmlResponse(*this, request) + + urlNotFoundMsg; } }