diff --git a/src/server.cpp b/src/server.cpp index 15fb7bbc..5b680328 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -889,10 +889,6 @@ Response InternalServer::handle_content(const RequestContext& request) printf("** running handle_content\n"); } - std::string content; - - kiwix::Entry entry; - const std::string bookName = get_book_name(request); if (bookName.empty()) return build_homepage(request); @@ -907,6 +903,8 @@ Response InternalServer::handle_content(const RequestContext& request) urlStr = urlStr.substr(1); } + kiwix::Entry entry; + try { entry = reader->getEntryFromPath(urlStr); if (entry.isRedirect() || urlStr.empty()) { @@ -928,6 +926,8 @@ Response InternalServer::handle_content(const RequestContext& request) printf("mimeType: %s\n", mimeType.c_str()); } + std::string content; + if ( is_compressible_mime_type(mimeType) ) { zim::Blob raw_content = entry.getBlob(); content = string(raw_content.data(), raw_content.size());