mirror of https://github.com/kiwix/libkiwix.git
Moved verbosity control to Response::send()
It makes little sense to pass the verbosity control to the `Response` constructor if it is used only in `Response::send()`.
This commit is contained in:
parent
3dce025f47
commit
f81a5a1a4b
|
@ -558,7 +558,7 @@ MHD_Result InternalServer::handlerCallback(struct MHD_Connection* connection,
|
||||||
response->set_etag_body(getLibraryId());
|
response->set_etag_body(getLibraryId());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto ret = response->send(request, connection);
|
auto ret = response->send(request, m_verbose.load(), connection);
|
||||||
auto end_time = std::chrono::steady_clock::now();
|
auto end_time = std::chrono::steady_clock::now();
|
||||||
auto time_span = std::chrono::duration_cast<std::chrono::duration<double>>(end_time - start_time);
|
auto time_span = std::chrono::duration_cast<std::chrono::duration<double>>(end_time - start_time);
|
||||||
if (m_verbose.load()) {
|
if (m_verbose.load()) {
|
||||||
|
|
|
@ -189,9 +189,7 @@ class InternalServer {
|
||||||
class CustomizedResources;
|
class CustomizedResources;
|
||||||
std::unique_ptr<CustomizedResources> m_customizedResources;
|
std::unique_ptr<CustomizedResources> m_customizedResources;
|
||||||
|
|
||||||
friend std::unique_ptr<Response> Response::build(const InternalServer& server);
|
|
||||||
friend std::unique_ptr<ContentResponse> ContentResponse::build(const InternalServer& server, const std::string& content, const std::string& mimetype);
|
friend std::unique_ptr<ContentResponse> ContentResponse::build(const InternalServer& server, const std::string& content, const std::string& mimetype);
|
||||||
friend std::unique_ptr<Response> ItemResponse::build(const InternalServer& server, const RequestContext& request, const zim::Item& item);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,9 +119,8 @@ const char* getCacheControlHeader(Response::Kind k)
|
||||||
|
|
||||||
} // unnamed namespace
|
} // unnamed namespace
|
||||||
|
|
||||||
Response::Response(bool verbose)
|
Response::Response()
|
||||||
: m_verbose(verbose),
|
: m_returnCode(MHD_HTTP_OK)
|
||||||
m_returnCode(MHD_HTTP_OK)
|
|
||||||
{
|
{
|
||||||
add_header(MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, "*");
|
add_header(MHD_HTTP_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN, "*");
|
||||||
}
|
}
|
||||||
|
@ -135,7 +134,7 @@ void Response::set_kind(Kind k)
|
||||||
|
|
||||||
std::unique_ptr<Response> Response::build(const InternalServer& server)
|
std::unique_ptr<Response> Response::build(const InternalServer& server)
|
||||||
{
|
{
|
||||||
return std::unique_ptr<Response>(new Response(server.m_verbose.load()));
|
return std::unique_ptr<Response>(new Response());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> Response::build_304(const InternalServer& server, const ETag& etag)
|
std::unique_ptr<Response> Response::build_304(const InternalServer& server, const ETag& etag)
|
||||||
|
@ -363,7 +362,7 @@ ContentResponse::create_mhd_response(const RequestContext& request)
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
MHD_Result Response::send(const RequestContext& request, MHD_Connection* connection)
|
MHD_Result Response::send(const RequestContext& request, bool verbose, MHD_Connection* connection)
|
||||||
{
|
{
|
||||||
MHD_Response* response = create_mhd_response(request);
|
MHD_Response* response = create_mhd_response(request);
|
||||||
|
|
||||||
|
@ -379,7 +378,7 @@ MHD_Result Response::send(const RequestContext& request, MHD_Connection* connect
|
||||||
if (m_returnCode == MHD_HTTP_OK && m_byteRange.kind() == ByteRange::RESOLVED_PARTIAL_CONTENT)
|
if (m_returnCode == MHD_HTTP_OK && m_byteRange.kind() == ByteRange::RESOLVED_PARTIAL_CONTENT)
|
||||||
m_returnCode = MHD_HTTP_PARTIAL_CONTENT;
|
m_returnCode = MHD_HTTP_PARTIAL_CONTENT;
|
||||||
|
|
||||||
if (m_verbose)
|
if (verbose)
|
||||||
print_response_info(m_returnCode, response);
|
print_response_info(m_returnCode, response);
|
||||||
|
|
||||||
auto ret = MHD_queue_response(connection, m_returnCode, response);
|
auto ret = MHD_queue_response(connection, m_returnCode, response);
|
||||||
|
@ -387,8 +386,8 @@ MHD_Result Response::send(const RequestContext& request, MHD_Connection* connect
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ContentResponse::ContentResponse(const std::string& root, bool verbose, const std::string& content, const std::string& mimetype) :
|
ContentResponse::ContentResponse(const std::string& root, const std::string& content, const std::string& mimetype) :
|
||||||
Response(verbose),
|
Response(),
|
||||||
m_root(root),
|
m_root(root),
|
||||||
m_content(content),
|
m_content(content),
|
||||||
m_mimeType(mimetype)
|
m_mimeType(mimetype)
|
||||||
|
@ -403,7 +402,6 @@ std::unique_ptr<ContentResponse> ContentResponse::build(
|
||||||
{
|
{
|
||||||
return std::unique_ptr<ContentResponse>(new ContentResponse(
|
return std::unique_ptr<ContentResponse>(new ContentResponse(
|
||||||
server.m_root,
|
server.m_root,
|
||||||
server.m_verbose.load(),
|
|
||||||
content,
|
content,
|
||||||
mimetype));
|
mimetype));
|
||||||
}
|
}
|
||||||
|
@ -418,8 +416,8 @@ std::unique_ptr<ContentResponse> ContentResponse::build(
|
||||||
return ContentResponse::build(server, content, mimetype);
|
return ContentResponse::build(server, content, mimetype);
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemResponse::ItemResponse(bool verbose, const zim::Item& item, const std::string& mimetype, const ByteRange& byterange) :
|
ItemResponse::ItemResponse(const zim::Item& item, const std::string& mimetype, const ByteRange& byterange) :
|
||||||
Response(verbose),
|
Response(),
|
||||||
m_item(item),
|
m_item(item),
|
||||||
m_mimeType(mimetype)
|
m_mimeType(mimetype)
|
||||||
{
|
{
|
||||||
|
@ -448,7 +446,6 @@ std::unique_ptr<Response> ItemResponse::build(const InternalServer& server, cons
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::unique_ptr<Response>(new ItemResponse(
|
return std::unique_ptr<Response>(new ItemResponse(
|
||||||
server.m_verbose.load(),
|
|
||||||
item,
|
item,
|
||||||
mimetype,
|
mimetype,
|
||||||
byteRange));
|
byteRange));
|
||||||
|
|
|
@ -54,7 +54,7 @@ class Response {
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Response(bool verbose);
|
Response();
|
||||||
virtual ~Response() = default;
|
virtual ~Response() = default;
|
||||||
|
|
||||||
static std::unique_ptr<Response> build(const InternalServer& server);
|
static std::unique_ptr<Response> build(const InternalServer& server);
|
||||||
|
@ -62,7 +62,7 @@ class Response {
|
||||||
static std::unique_ptr<Response> build_416(const InternalServer& server, size_t resourceLength);
|
static std::unique_ptr<Response> build_416(const InternalServer& server, size_t resourceLength);
|
||||||
static std::unique_ptr<Response> build_redirect(const InternalServer& server, const std::string& redirectUrl);
|
static std::unique_ptr<Response> build_redirect(const InternalServer& server, const std::string& redirectUrl);
|
||||||
|
|
||||||
MHD_Result send(const RequestContext& request, MHD_Connection* connection);
|
MHD_Result send(const RequestContext& request, bool verbose, MHD_Connection* connection);
|
||||||
|
|
||||||
void set_code(int code) { m_returnCode = code; }
|
void set_code(int code) { m_returnCode = code; }
|
||||||
void set_kind(Kind k);
|
void set_kind(Kind k);
|
||||||
|
@ -78,7 +78,6 @@ class Response {
|
||||||
|
|
||||||
protected: // data
|
protected: // data
|
||||||
Kind m_kind = DYNAMIC_CONTENT;
|
Kind m_kind = DYNAMIC_CONTENT;
|
||||||
bool m_verbose;
|
|
||||||
int m_returnCode;
|
int m_returnCode;
|
||||||
ByteRange m_byteRange;
|
ByteRange m_byteRange;
|
||||||
ETag m_etag;
|
ETag m_etag;
|
||||||
|
@ -92,7 +91,6 @@ class ContentResponse : public Response {
|
||||||
public:
|
public:
|
||||||
ContentResponse(
|
ContentResponse(
|
||||||
const std::string& root,
|
const std::string& root,
|
||||||
bool verbose,
|
|
||||||
const std::string& content,
|
const std::string& content,
|
||||||
const std::string& mimetype);
|
const std::string& mimetype);
|
||||||
|
|
||||||
|
@ -199,7 +197,7 @@ private: // overrides
|
||||||
|
|
||||||
class ItemResponse : public Response {
|
class ItemResponse : public Response {
|
||||||
public:
|
public:
|
||||||
ItemResponse(bool verbose, const zim::Item& item, const std::string& mimetype, const ByteRange& byterange);
|
ItemResponse(const zim::Item& item, const std::string& mimetype, const ByteRange& byterange);
|
||||||
static std::unique_ptr<Response> build(const InternalServer& server, const RequestContext& request, const zim::Item& item);
|
static std::unique_ptr<Response> build(const InternalServer& server, const RequestContext& request, const zim::Item& item);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Reference in New Issue