diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 91e5d3ab4..1948f1cfb 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -593,7 +593,8 @@ std::unique_ptr InternalServer::handle_search(const RequestContext& re data.set("pattern", encodeDiples(searchInfo.pattern)); auto response = ContentResponse::build(*this, RESOURCE::templates::no_search_result_html, data, "text/html; charset=utf-8"); response->set_code(MHD_HTTP_NOT_FOUND); - return withTaskbarInfo(searchInfo.bookName, archive.get(), std::move(response)); + response->set_taskbar(searchInfo.bookName, archive.get()); + return response; } @@ -622,7 +623,8 @@ std::unique_ptr InternalServer::handle_search(const RequestContext& re renderer.setSearchProtocolPrefix(m_root + "/search?"); renderer.setPageLength(pageLength); auto response = ContentResponse::build(*this, renderer.getHtml(), "text/html; charset=utf-8"); - return withTaskbarInfo(searchInfo.bookName, archive.get(), std::move(response)); + response->set_taskbar(searchInfo.bookName, archive.get()); + return response; } catch (const std::invalid_argument& e) { return HTTP400HtmlResponse(*this, request) + invalidUrlMsg diff --git a/src/server/response.cpp b/src/server/response.cpp index 180c378f3..60f8caff5 100644 --- a/src/server/response.cpp +++ b/src/server/response.cpp @@ -91,9 +91,10 @@ std::unique_ptr ContentResponseBlueprint::generateResponseObjec { auto r = ContentResponse::build(m_server, m_template, m_data, m_mimeType); r->set_code(m_httpStatusCode); - return m_taskbarInfo - ? withTaskbarInfo(m_taskbarInfo->bookName, m_taskbarInfo->archive, std::move(r)) - : std::move(r); + if ( m_taskbarInfo ) { + r->set_taskbar(m_taskbarInfo->bookName, m_taskbarInfo->archive); + } + return r; } HTTP404HtmlResponse::HTTP404HtmlResponse(const InternalServer& server, @@ -442,15 +443,6 @@ std::unique_ptr ContentResponse::build( return ContentResponse::build(server, content, mimetype, isHomePage); } -std::unique_ptr withTaskbarInfo( - const std::string& bookName, - const zim::Archive* archive, - std::unique_ptr r) -{ - r->set_taskbar(bookName, archive); - return r; -} - ItemResponse::ItemResponse(bool verbose, const zim::Item& item, const std::string& mimetype, const ByteRange& byterange) : Response(verbose), m_item(item), diff --git a/src/server/response.h b/src/server/response.h index 7536a7af8..160798c96 100644 --- a/src/server/response.h +++ b/src/server/response.h @@ -136,10 +136,6 @@ struct TaskbarInfo {} }; -std::unique_ptr withTaskbarInfo(const std::string& bookName, - const zim::Archive* archive, - std::unique_ptr r); - class ContentResponseBlueprint { public: // functions