diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 61b7409e4..597f52dbb 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -676,7 +676,7 @@ std::unique_ptr InternalServer::handle_catalog(const RequestContext& r host = request.get_header("Host"); url = request.get_url_part(1); } catch (const std::out_of_range&) { - return make404Response(*this, request) + return HTTP404HtmlResponse(*this, request) + urlNotFoundMsg; } @@ -685,7 +685,7 @@ std::unique_ptr InternalServer::handle_catalog(const RequestContext& r } if (url != "searchdescription.xml" && url != "root.xml" && url != "search") { - return make404Response(*this, request) + return HTTP404HtmlResponse(*this, request) + urlNotFoundMsg; } diff --git a/src/server/response.cpp b/src/server/response.cpp index 5a403bf9f..42175637c 100644 --- a/src/server/response.cpp +++ b/src/server/response.cpp @@ -109,17 +109,16 @@ std::unique_ptr Response::build_404(const InternalServer& serve return response; } -ContentResponseBlueprint make404Response(const InternalServer& server, +HTTP404HtmlResponse::HTTP404HtmlResponse(const InternalServer& server, const RequestContext& request) + : ContentResponseBlueprint(&server, + &request, + MHD_HTTP_NOT_FOUND, + "text/html", + RESOURCE::templates::_404_html) { - auto crb = ContentResponseBlueprint(&server, - &request, - MHD_HTTP_NOT_FOUND, - "text/html", - RESOURCE::templates::_404_html); - kainjow::mustache::list emptyList; - return crb + kainjow::mustache::object{{"details", emptyList}}; + this->m_data = kainjow::mustache::object{{"details", emptyList}}; } std::unique_ptr Response::build_416(const InternalServer& server, size_t resourceLength) diff --git a/src/server/response.h b/src/server/response.h index f77517581..fb7cf84b5 100644 --- a/src/server/response.h +++ b/src/server/response.h @@ -175,12 +175,11 @@ public: //data kainjow::mustache::data m_data; }; -ContentResponseBlueprint make404Response(const InternalServer& server, - const RequestContext& request); - -kainjow::mustache::data make404ResponseData(const std::string& url, - const std::string& details = ""); - +struct HTTP404HtmlResponse : ContentResponseBlueprint +{ + HTTP404HtmlResponse(const InternalServer& server, + const RequestContext& request); +}; class ItemResponse : public Response { public: