mirror of https://github.com/kiwix/libkiwix.git
Dropped the server param from Response::build*()
This commit is contained in:
parent
f81a5a1a4b
commit
2d132d701e
|
@ -594,12 +594,12 @@ std::unique_ptr<Response> InternalServer::handle_request(const RequestContext& r
|
||||||
// Redirect /ROOT_LOCATION to /ROOT_LOCATION/ (note the added slash)
|
// Redirect /ROOT_LOCATION to /ROOT_LOCATION/ (note the added slash)
|
||||||
// so that relative URLs are resolved correctly
|
// so that relative URLs are resolved correctly
|
||||||
const std::string query = getSearchComponent(request);
|
const std::string query = getSearchComponent(request);
|
||||||
return Response::build_redirect(*this, m_root + "/" + query);
|
return Response::build_redirect(m_root + "/" + query);
|
||||||
}
|
}
|
||||||
|
|
||||||
const ETag etag = get_matching_if_none_match_etag(request, getLibraryId());
|
const ETag etag = get_matching_if_none_match_etag(request, getLibraryId());
|
||||||
if ( etag )
|
if ( etag )
|
||||||
return Response::build_304(*this, etag);
|
return Response::build_304(etag);
|
||||||
|
|
||||||
const auto url = request.get_url();
|
const auto url = request.get_url();
|
||||||
if ( isLocallyCustomizedResource(url) )
|
if ( isLocallyCustomizedResource(url) )
|
||||||
|
@ -640,7 +640,7 @@ std::unique_ptr<Response> InternalServer::handle_request(const RequestContext& r
|
||||||
|
|
||||||
const std::string contentUrl = m_root + "/content" + urlEncode(url);
|
const std::string contentUrl = m_root + "/content" + urlEncode(url);
|
||||||
const std::string query = getSearchComponent(request);
|
const std::string query = getSearchComponent(request);
|
||||||
return Response::build_redirect(*this, contentUrl + query);
|
return Response::build_redirect(contentUrl + query);
|
||||||
} catch (std::exception& e) {
|
} catch (std::exception& e) {
|
||||||
fprintf(stderr, "===== Unhandled error : %s\n", e.what());
|
fprintf(stderr, "===== Unhandled error : %s\n", e.what());
|
||||||
return HTTP500Response(*this, request)
|
return HTTP500Response(*this, request)
|
||||||
|
@ -1101,7 +1101,7 @@ InternalServer::build_redirect(const std::string& bookName, const zim::Item& ite
|
||||||
{
|
{
|
||||||
const auto contentPath = "/content/" + bookName + "/" + item.getPath();
|
const auto contentPath = "/content/" + bookName + "/" + item.getPath();
|
||||||
const auto url = m_root + kiwix::urlEncode(contentPath);
|
const auto url = m_root + kiwix::urlEncode(contentPath);
|
||||||
return Response::build_redirect(*this, url);
|
return Response::build_redirect(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> InternalServer::handle_content(const RequestContext& request)
|
std::unique_ptr<Response> InternalServer::handle_content(const RequestContext& request)
|
||||||
|
@ -1132,7 +1132,7 @@ std::unique_ptr<Response> InternalServer::handle_content(const RequestContext& r
|
||||||
const std::string archiveUuid(archive->getUuid());
|
const std::string archiveUuid(archive->getUuid());
|
||||||
const ETag etag = get_matching_if_none_match_etag(request, archiveUuid);
|
const ETag etag = get_matching_if_none_match_etag(request, archiveUuid);
|
||||||
if ( etag )
|
if ( etag )
|
||||||
return Response::build_304(*this, etag);
|
return Response::build_304(etag);
|
||||||
|
|
||||||
auto urlStr = url.substr(prefixLength + bookName.size());
|
auto urlStr = url.substr(prefixLength + bookName.size());
|
||||||
if (urlStr[0] == '/') {
|
if (urlStr[0] == '/') {
|
||||||
|
@ -1212,7 +1212,7 @@ std::unique_ptr<Response> InternalServer::handle_raw(const RequestContext& reque
|
||||||
const std::string archiveUuid(archive->getUuid());
|
const std::string archiveUuid(archive->getUuid());
|
||||||
const ETag etag = get_matching_if_none_match_etag(request, archiveUuid);
|
const ETag etag = get_matching_if_none_match_etag(request, archiveUuid);
|
||||||
if ( etag )
|
if ( etag )
|
||||||
return Response::build_304(*this, etag);
|
return Response::build_304(etag);
|
||||||
|
|
||||||
// Remove the beggining of the path:
|
// Remove the beggining of the path:
|
||||||
// /raw/<bookName>/<kind>/foo
|
// /raw/<bookName>/<kind>/foo
|
||||||
|
@ -1264,7 +1264,7 @@ std::unique_ptr<Response> InternalServer::handle_locally_customized_resource(con
|
||||||
|
|
||||||
auto byteRange = request.get_range().resolve(resourceData.size());
|
auto byteRange = request.get_range().resolve(resourceData.size());
|
||||||
if (byteRange.kind() != ByteRange::RESOLVED_FULL_CONTENT) {
|
if (byteRange.kind() != ByteRange::RESOLVED_FULL_CONTENT) {
|
||||||
return Response::build_416(*this, resourceData.size());
|
return Response::build_416(resourceData.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
return ContentResponse::build(*this,
|
return ContentResponse::build(*this,
|
||||||
|
|
|
@ -132,14 +132,14 @@ void Response::set_kind(Kind k)
|
||||||
m_etag.set_option(ETag::ZIM_CONTENT);
|
m_etag.set_option(ETag::ZIM_CONTENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> Response::build(const InternalServer& server)
|
std::unique_ptr<Response> Response::build()
|
||||||
{
|
{
|
||||||
return std::unique_ptr<Response>(new Response());
|
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 ETag& etag)
|
||||||
{
|
{
|
||||||
auto response = Response::build(server);
|
auto response = Response::build();
|
||||||
response->set_code(MHD_HTTP_NOT_MODIFIED);
|
response->set_code(MHD_HTTP_NOT_MODIFIED);
|
||||||
response->m_etag = etag;
|
response->m_etag = etag;
|
||||||
if ( etag.get_option(ETag::ZIM_CONTENT) ) {
|
if ( etag.get_option(ETag::ZIM_CONTENT) ) {
|
||||||
|
@ -251,9 +251,9 @@ std::unique_ptr<ContentResponse> HTTP500Response::generateResponseObject() const
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> Response::build_416(const InternalServer& server, size_t resourceLength)
|
std::unique_ptr<Response> Response::build_416(size_t resourceLength)
|
||||||
{
|
{
|
||||||
auto response = Response::build(server);
|
auto response = Response::build();
|
||||||
// [FIXME] (compile with recent enough version of libmicrohttpd)
|
// [FIXME] (compile with recent enough version of libmicrohttpd)
|
||||||
// response->set_code(MHD_HTTP_RANGE_NOT_SATISFIABLE);
|
// response->set_code(MHD_HTTP_RANGE_NOT_SATISFIABLE);
|
||||||
response->set_code(416);
|
response->set_code(416);
|
||||||
|
@ -265,9 +265,9 @@ std::unique_ptr<Response> Response::build_416(const InternalServer& server, size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
std::unique_ptr<Response> Response::build_redirect(const InternalServer& server, const std::string& redirectUrl)
|
std::unique_ptr<Response> Response::build_redirect(const std::string& redirectUrl)
|
||||||
{
|
{
|
||||||
auto response = Response::build(server);
|
auto response = Response::build();
|
||||||
response->m_returnCode = MHD_HTTP_FOUND;
|
response->m_returnCode = MHD_HTTP_FOUND;
|
||||||
response->add_header(MHD_HTTP_HEADER_LOCATION, redirectUrl);
|
response->add_header(MHD_HTTP_HEADER_LOCATION, redirectUrl);
|
||||||
return response;
|
return response;
|
||||||
|
@ -440,7 +440,7 @@ std::unique_ptr<Response> ItemResponse::build(const InternalServer& server, cons
|
||||||
}
|
}
|
||||||
|
|
||||||
if (byteRange.kind() == ByteRange::RESOLVED_UNSATISFIABLE) {
|
if (byteRange.kind() == ByteRange::RESOLVED_UNSATISFIABLE) {
|
||||||
auto response = Response::build_416(server, item.getSize());
|
auto response = Response::build_416(item.getSize());
|
||||||
response->set_kind(Response::ZIM_CONTENT);
|
response->set_kind(Response::ZIM_CONTENT);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,10 +57,10 @@ class Response {
|
||||||
Response();
|
Response();
|
||||||
virtual ~Response() = default;
|
virtual ~Response() = default;
|
||||||
|
|
||||||
static std::unique_ptr<Response> build(const InternalServer& server);
|
static std::unique_ptr<Response> build();
|
||||||
static std::unique_ptr<Response> build_304(const InternalServer& server, const ETag& etag);
|
static std::unique_ptr<Response> build_304(const ETag& etag);
|
||||||
static std::unique_ptr<Response> build_416(const InternalServer& server, size_t resourceLength);
|
static std::unique_ptr<Response> build_416(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 std::string& redirectUrl);
|
||||||
|
|
||||||
MHD_Result send(const RequestContext& request, bool verbose, MHD_Connection* connection);
|
MHD_Result send(const RequestContext& request, bool verbose, MHD_Connection* connection);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue