diff options
| author | Stefan Boberg <[email protected]> | 2021-09-12 11:51:29 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-09-12 11:51:29 +0200 |
| commit | 822b0b1cb3868fdfc2b7159cdbf11c3df776c9dd (patch) | |
| tree | 7888b5017fdcd085103a60b14bff3efd5e7be7f3 | |
| parent | Added gb benchmark tool for test script usage (diff) | |
| download | zen-822b0b1cb3868fdfc2b7159cdbf11c3df776c9dd.tar.xz zen-822b0b1cb3868fdfc2b7159cdbf11c3df776c9dd.zip | |
HttpResponse enum -> HttpResponseCode
Also removed initial CbPackage API HttpServer changes as I have decided to take a different approach
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | zenhttp/httpserver.cpp | 29 | ||||
| -rw-r--r-- | zenhttp/httpsys.cpp | 26 | ||||
| -rw-r--r-- | zenhttp/httpuws.cpp | 29 | ||||
| -rw-r--r-- | zenhttp/httpuws.h | 8 | ||||
| -rw-r--r-- | zenhttp/include/zenhttp/httpserver.h | 42 | ||||
| -rw-r--r-- | zenserver/cache/structuredcache.cpp | 36 | ||||
| -rw-r--r-- | zenserver/casstore.cpp | 16 | ||||
| -rw-r--r-- | zenserver/compute/apply.cpp | 22 | ||||
| -rw-r--r-- | zenserver/diag/diagsvcs.h | 14 | ||||
| -rw-r--r-- | zenserver/projectstore.cpp | 86 | ||||
| -rw-r--r-- | zenserver/testing/httptest.cpp | 13 | ||||
| -rw-r--r-- | zenserver/testing/httptest.h | 7 | ||||
| -rw-r--r-- | zenserver/testing/launch.cpp | 6 |
14 files changed, 149 insertions, 186 deletions
diff --git a/.gitignore b/.gitignore index 27ff65485..df6c1a9f8 100644 --- a/.gitignore +++ b/.gitignore @@ -225,3 +225,4 @@ TAGS tags .tags !tags/ +/compile_commands.json diff --git a/zenhttp/httpserver.cpp b/zenhttp/httpserver.cpp index b11feacd5..e283f31c9 100644 --- a/zenhttp/httpserver.cpp +++ b/zenhttp/httpserver.cpp @@ -80,7 +80,7 @@ struct CbAttachmentEntry }; void -HttpServerRequest::WriteResponse(HttpResponse HttpResponseCode, CbPackage Data) +HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, CbPackage Data) { const std::span<const CbAttachment>& Attachments = Data.GetAttachments(); @@ -128,28 +128,28 @@ HttpServerRequest::WriteResponse(HttpResponse HttpResponseCode, CbPackage Data) } } - return WriteResponse(HttpResponseCode, HttpContentType::kCbPackage, ResponseBuffers); + return WriteResponse(ResponseCode, HttpContentType::kCbPackage, ResponseBuffers); } void -HttpServerRequest::WriteResponse(HttpResponse HttpResponseCode, CbObject Data) +HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, CbObject Data) { SharedBuffer Buf = Data.GetBuffer(); std::array<IoBuffer, 1> Buffers{IoBufferBuilder::MakeCloneFromMemory(Buf.GetData(), Buf.GetSize())}; - return WriteResponse(HttpResponseCode, HttpContentType::kCbObject, Buffers); + return WriteResponse(ResponseCode, HttpContentType::kCbObject, Buffers); } void -HttpServerRequest::WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::string_view ResponseString) +HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::string_view ResponseString) { - return WriteResponse(HttpResponseCode, ContentType, std::u8string_view{(char8_t*)ResponseString.data(), ResponseString.size()}); + return WriteResponse(ResponseCode, ContentType, std::u8string_view{(char8_t*)ResponseString.data(), ResponseString.size()}); } void -HttpServerRequest::WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, IoBuffer Blob) +HttpServerRequest::WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, IoBuffer Blob) { std::array<IoBuffer, 1> Buffers{Blob}; - return WriteResponse(HttpResponseCode, ContentType, Buffers); + return WriteResponse(ResponseCode, ContentType, Buffers); } HttpServerRequest::QueryParams @@ -299,19 +299,6 @@ HttpRequestRouter::RegisterRoute(const char* Regex, HttpRequestRouter::HandlerFu } void -HttpRequestRouter::RegisterRoute(const char* Regex, PackageEndpointHandler& Handler) -{ - ExtendableStringBuilder<128> ExpandedRegex; - ProcessRegexSubstitutions(Regex, ExpandedRegex); - - m_Handlers.emplace_back( - ExpandedRegex.c_str(), - HttpVerb::kPost, - [&Handler](HttpRouterRequest& Request) { Handler.HandleRequest(Request); }, - Regex); -} - -void HttpRequestRouter::ProcessRegexSubstitutions(const char* Regex, StringBuilderBase& OutExpandedRegex) { size_t RegexLen = strlen(Regex); diff --git a/zenhttp/httpsys.cpp b/zenhttp/httpsys.cpp index 1050bbbb7..7bb3bbc75 100644 --- a/zenhttp/httpsys.cpp +++ b/zenhttp/httpsys.cpp @@ -366,9 +366,9 @@ public: ~HttpSysServerRequest() = default; virtual IoBuffer ReadPayload() override; - virtual void WriteResponse(HttpResponse HttpResponseCode) override; - virtual void WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::span<IoBuffer> Blobs) override; - virtual void WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::u8string_view ResponseString) override; + virtual void WriteResponse(HttpResponseCode ResponseCode) override; + virtual void WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::span<IoBuffer> Blobs) override; + virtual void WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::u8string_view ResponseString) override; HttpSysTransaction& m_HttpTx; HttpMessageResponseRequest* m_Response = nullptr; // TODO: make this more general @@ -464,7 +464,7 @@ private: std::vector<HTTP_DATA_CHUNK> m_HttpDataChunks; uint64_t m_TotalDataSize = 0; // Sum of all chunk sizes - uint16_t m_HttpResponseCode = 0; + uint16_t m_ResponseCode = 0; uint32_t m_NextDataChunkOffset = 0; // This is used for responses where the number of chunks exceed the maximum number for one API call uint32_t m_RemainingChunkCount = 0; bool m_IsInitialResponse = true; @@ -525,7 +525,7 @@ HttpMessageResponseRequest::~HttpMessageResponseRequest() void HttpMessageResponseRequest::Initialize(uint16_t ResponseCode, std::span<IoBuffer> BlobList) { - m_HttpResponseCode = ResponseCode; + m_ResponseCode = ResponseCode; const uint32_t ChunkCount = gsl::narrow<uint32_t>(BlobList.size()); @@ -671,8 +671,8 @@ HttpMessageResponseRequest::IssueRequest() ContentTypeHeader->pRawValue = ContentTypeString.data(); ContentTypeHeader->RawValueLength = (USHORT)ContentTypeString.size(); - HttpResponse.StatusCode = m_HttpResponseCode; - HttpResponse.pReason = ReasonStringForHttpResultCode(m_HttpResponseCode); + HttpResponse.StatusCode = m_ResponseCode; + HttpResponse.pReason = ReasonStringForHttpResultCode(m_ResponseCode); HttpResponse.ReasonLength = (USHORT)strlen(HttpResponse.pReason); // Cache policy @@ -1143,11 +1143,11 @@ HttpSysServerRequest::ReadPayload() } void -HttpSysServerRequest::WriteResponse(HttpResponse HttpResponseCode) +HttpSysServerRequest::WriteResponse(HttpResponseCode ResponseCode) { ZEN_ASSERT(m_IsHandled == false); - m_Response = new HttpMessageResponseRequest(m_HttpTx, (uint16_t)HttpResponseCode); + m_Response = new HttpMessageResponseRequest(m_HttpTx, (uint16_t)ResponseCode); if (m_SuppressBody) { @@ -1158,11 +1158,11 @@ HttpSysServerRequest::WriteResponse(HttpResponse HttpResponseCode) } void -HttpSysServerRequest::WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::span<IoBuffer> Blobs) +HttpSysServerRequest::WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::span<IoBuffer> Blobs) { ZEN_ASSERT(m_IsHandled == false); - m_Response = new HttpMessageResponseRequest(m_HttpTx, (uint16_t)HttpResponseCode, ContentType, Blobs); + m_Response = new HttpMessageResponseRequest(m_HttpTx, (uint16_t)ResponseCode, ContentType, Blobs); if (m_SuppressBody) { @@ -1173,12 +1173,12 @@ HttpSysServerRequest::WriteResponse(HttpResponse HttpResponseCode, HttpContentTy } void -HttpSysServerRequest::WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::u8string_view ResponseString) +HttpSysServerRequest::WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::u8string_view ResponseString) { ZEN_ASSERT(m_IsHandled == false); m_Response = - new HttpMessageResponseRequest(m_HttpTx, (uint16_t)HttpResponseCode, ContentType, ResponseString.data(), ResponseString.size()); + new HttpMessageResponseRequest(m_HttpTx, (uint16_t)ResponseCode, ContentType, ResponseString.data(), ResponseString.size()); if (m_SuppressBody) { diff --git a/zenhttp/httpuws.cpp b/zenhttp/httpuws.cpp index 2fb3734e8..992809b17 100644 --- a/zenhttp/httpuws.cpp +++ b/zenhttp/httpuws.cpp @@ -1,7 +1,9 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + #include "httpuws.h" #pragma warning(push) -#pragma warning(disable : 4244 4267 4458 4706) +#pragma warning(disable : 4244 4324 4267 4458 4706) #include <uwebsockets/App.h> #pragma warning(pop) @@ -42,12 +44,25 @@ HttpUwsServer::Run(bool TestMode) zen::logging::ConsoleLog().info("Zen Server running (null HTTP). Press ESC or Q to quit"); } - ::uWS::App().get("/*", [](uWS::HttpResponse<false>* res, uWS::HttpRequest* req) { - res->end("Hello world!"); - ZEN_UNUSED(req); - }).listen(m_BasePort, [](auto* listen_socket) { - ZEN_UNUSED(listen_socket); - }).run(); + ::uWS::App() + .get("/*", + [](uWS::HttpResponse<false>* res, uWS::HttpRequest* req) { + res->end("Hello world!"); + ZEN_UNUSED(req); + }) + .post("/*", + [](uWS::HttpResponse<false>* res, uWS::HttpRequest* req) { + res->onData([&](std::string_view Data, bool fin) { + ZEN_UNUSED(Data); + if (fin) + res->end("Hello world!"); + }); + + res->onAborted([&] {}); + ZEN_UNUSED(req); + }) + .listen(m_BasePort, [](auto* listen_socket) { ZEN_UNUSED(listen_socket); }) + .run(); do { diff --git a/zenhttp/httpuws.h b/zenhttp/httpuws.h index 2852764f7..ec55ae2fd 100644 --- a/zenhttp/httpuws.h +++ b/zenhttp/httpuws.h @@ -1,3 +1,5 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + #pragma once #include <zenhttp/httpserver.h> @@ -8,7 +10,7 @@ namespace zen { class HttpUwsServer : public HttpServer { - public: +public: HttpUwsServer(); ~HttpUwsServer(); @@ -19,7 +21,7 @@ class HttpUwsServer : public HttpServer private: Event m_ShutdownEvent; - int m_BasePort = 0; + int m_BasePort = 0; }; -}
\ No newline at end of file +} // namespace zen
\ No newline at end of file diff --git a/zenhttp/include/zenhttp/httpserver.h b/zenhttp/include/zenhttp/httpserver.h index 24ba615f3..4267903ae 100644 --- a/zenhttp/include/zenhttp/httpserver.h +++ b/zenhttp/include/zenhttp/httpserver.h @@ -40,7 +40,7 @@ enum class HttpVerb gsl_DEFINE_ENUM_BITMASK_OPERATORS(HttpVerb); -enum class HttpResponse +enum class HttpResponseCode { // 1xx - Informational @@ -239,14 +239,14 @@ public: Note that this is destructive in the sense that the IoBuffer instances referred to by Blobs will be moved into our response handler array where they are kept alive, in order to reduce ref-counting storms */ - virtual void WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::span<IoBuffer> Blobs) = 0; - virtual void WriteResponse(HttpResponse HttpResponseCode) = 0; - virtual void WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::u8string_view ResponseString) = 0; + virtual void WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::span<IoBuffer> Blobs) = 0; + virtual void WriteResponse(HttpResponseCode ResponseCode) = 0; + virtual void WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::u8string_view ResponseString) = 0; - void WriteResponse(HttpResponse HttpResponseCode, CbObject Data); - void WriteResponse(HttpResponse HttpResponseCode, CbPackage Package); - void WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, std::string_view ResponseString); - void WriteResponse(HttpResponse HttpResponseCode, HttpContentType ContentType, IoBuffer Blob); + void WriteResponse(HttpResponseCode ResponseCode, CbObject Data); + void WriteResponse(HttpResponseCode ResponseCode, CbPackage Package); + void WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, std::string_view ResponseString); + void WriteResponse(HttpResponseCode ResponseCode, HttpContentType ContentType, IoBuffer Blob); protected: bool m_IsHandled = false; @@ -339,25 +339,6 @@ HttpRouterRequest::GetCapture(uint32_t Index) const return m_Match[Index]; } -////////////////////////////////////////////////////////////////////////// - -class PackageRequestContext -{ -public: - PackageRequestContext(); - ~PackageRequestContext(); - -private: -}; - -class PackageEndpointHandler -{ -public: - virtual void HandleRequest(HttpRouterRequest& Request) = 0; - -private: -}; - /** HTTP request router helper * * This helper class allows a service implementer to register one or more @@ -388,13 +369,6 @@ public: * @param SupportedVerbs Supported HTTP verbs for this handler */ void RegisterRoute(const char* Regex, HandlerFunc_t&& HandlerFunc, HttpVerb SupportedVerbs); - /** - * @brief Register CbPackage endpoint handler - * @param Regex Regular expression used to match the handler to a request. This may - * contain pattern aliases registered via AddPattern - * @param Handler Package handler instance - */ - void RegisterRoute(const char* Regex, PackageEndpointHandler& Handler); void ProcessRegexSubstitutions(const char* Regex, StringBuilderBase& ExpandedRegex); diff --git a/zenserver/cache/structuredcache.cpp b/zenserver/cache/structuredcache.cpp index 57def07b9..a3e9c43e0 100644 --- a/zenserver/cache/structuredcache.cpp +++ b/zenserver/cache/structuredcache.cpp @@ -93,7 +93,7 @@ HttpStructuredCacheService::HandleRequest(zen::HttpServerRequest& Request) return HandleCacheBucketRequest(Request, Key); } - return Request.WriteResponse(zen::HttpResponse::BadRequest); // invalid URL + return Request.WriteResponse(zen::HttpResponseCode::BadRequest); // invalid URL } if (Ref.PayloadId == IoHash::Zero) @@ -128,11 +128,11 @@ HttpStructuredCacheService::HandleCacheBucketRequest(zen::HttpServerRequest& Req if (m_CacheStore.DropBucket(Bucket)) { - return Request.WriteResponse(zen::HttpResponse::OK); + return Request.WriteResponse(zen::HttpResponseCode::OK); } else { - return Request.WriteResponse(zen::HttpResponse::NotFound); + return Request.WriteResponse(zen::HttpResponseCode::NotFound); } break; } @@ -209,7 +209,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req { m_Log.debug("MISS - '{}/{}'", Ref.BucketSegment, Ref.HashKey); - return Request.WriteResponse(zen::HttpResponse::NotFound); + return Request.WriteResponse(zen::HttpResponseCode::NotFound); } if (Verb == kHead) @@ -224,7 +224,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req Value.Value.GetContentType(), InUpstreamCache ? "upstream" : "local"); - return Request.WriteResponse(zen::HttpResponse::OK, MapToHttpContentType(Value.Value.GetContentType()), Value.Value); + return Request.WriteResponse(zen::HttpResponseCode::OK, MapToHttpContentType(Value.Value.GetContentType()), Value.Value); } break; @@ -234,7 +234,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req if (!Body || Body.Size() == 0) { - return Request.WriteResponse(zen::HttpResponse::BadRequest); + return Request.WriteResponse(zen::HttpResponseCode::BadRequest); } const HttpContentType ContentType = Request.RequestContentType(); @@ -253,7 +253,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req break; default: - return Request.WriteResponse(zen::HttpResponse::BadRequest); + return Request.WriteResponse(zen::HttpResponseCode::BadRequest); } if (!IsCompactBinary) @@ -272,7 +272,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req {.Type = ZenContentType::kBinary, .CacheKey = {Ref.BucketSegment, Ref.HashKey}}); } - return Request.WriteResponse(zen::HttpResponse::Created); + return Request.WriteResponse(zen::HttpResponseCode::Created); } // Validate payload before accessing it @@ -284,7 +284,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req m_Log.warn("Payload for key '{}/{}' ({} bytes) failed validation", Ref.BucketSegment, Ref.HashKey, Body.Size()); // TODO: add details in response, kText || kCbObject? - return Request.WriteResponse(HttpResponse::BadRequest, HttpContentType::kText, "Compact binary validation failed"sv); + return Request.WriteResponse(HttpResponseCode::BadRequest, HttpContentType::kText, "Compact binary validation failed"sv); } // Extract referenced payload hashes @@ -336,7 +336,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req .PayloadIds = std::move(References)}); } - return Request.WriteResponse(zen::HttpResponse::Created); + return Request.WriteResponse(zen::HttpResponseCode::Created); } else { @@ -351,7 +351,7 @@ HttpStructuredCacheService::HandleCacheRecordRequest(zen::HttpServerRequest& Req Response.EndArray(); // Return Created | BadRequest? - return Request.WriteResponse(zen::HttpResponse::Created, Response.Save()); + return Request.WriteResponse(zen::HttpResponseCode::Created, Response.Save()); } } break; @@ -407,7 +407,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (!Payload) { m_Log.debug("MISS - '{}/{}/{}'", Ref.BucketSegment, Ref.HashKey, Ref.PayloadId); - return Request.WriteResponse(zen::HttpResponse::NotFound); + return Request.WriteResponse(zen::HttpResponseCode::NotFound); } m_Log.debug("HIT - '{}/{}/{}' ({} bytes, {}) ({})", @@ -423,7 +423,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re Request.SetSuppressResponseBody(); } - return Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, Payload); + return Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, Payload); } break; @@ -433,7 +433,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re { if (Body.Size() == 0) { - return Request.WriteResponse(zen::HttpResponse::BadRequest, HttpContentType::kText, "Empty payload not permitted"); + return Request.WriteResponse(zen::HttpResponseCode::BadRequest, HttpContentType::kText, "Empty payload not permitted"); } zen::IoHash ChunkHash = zen::IoHash::HashBuffer(Body); @@ -443,7 +443,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (!Compressed) { // All attachment payloads need to be in compressed buffer format - return Request.WriteResponse(zen::HttpResponse::BadRequest, + return Request.WriteResponse(zen::HttpResponseCode::BadRequest, HttpContentType::kText, "Attachments must be compressed"); } @@ -452,7 +452,7 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (IoHash::FromBLAKE3(Compressed.GetRawHash()) != Ref.PayloadId) { // the URL specified content id and content hashes don't match! - return Request.WriteResponse(HttpResponse::BadRequest); + return Request.WriteResponse(HttpResponseCode::BadRequest); } zen::CasStore::InsertResult Result = m_CasStore.InsertChunk(Body, ChunkHash); @@ -469,11 +469,11 @@ HttpStructuredCacheService::HandleCachePayloadRequest(zen::HttpServerRequest& Re if (Result.New) { - return Request.WriteResponse(zen::HttpResponse::Created); + return Request.WriteResponse(zen::HttpResponseCode::Created); } else { - return Request.WriteResponse(zen::HttpResponse::OK); + return Request.WriteResponse(zen::HttpResponseCode::OK); } } } diff --git a/zenserver/casstore.cpp b/zenserver/casstore.cpp index 1d147024a..6f1e4873b 100644 --- a/zenserver/casstore.cpp +++ b/zenserver/casstore.cpp @@ -23,7 +23,7 @@ HttpCasService::HttpCasService(CasStore& Store) : m_CasStore(Store) if ((EntryCount * sizeof(IoHash)) != Payload.Size()) { - return ServerRequest.WriteResponse(HttpResponse::BadRequest); + return ServerRequest.WriteResponse(HttpResponseCode::BadRequest); } const IoHash* Hashes = reinterpret_cast<const IoHash*>(Payload.Data()); @@ -55,7 +55,7 @@ HttpCasService::HttpCasService(CasStore& Store) : m_CasStore(Store) Values[0] = IoBufferBuilder::MakeCloneFromMemory(HeaderStream.Data(), HeaderStream.Size()); - ServerRequest.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, Values); + ServerRequest.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Values); }, HttpVerb::kPost); @@ -74,10 +74,10 @@ HttpCasService::HttpCasService(CasStore& Store) : m_CasStore(Store) { if (IoBuffer Value = m_CasStore.FindChunk(Hash)) { - return ServerRequest.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, Value); + return ServerRequest.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Value); } - return ServerRequest.WriteResponse(HttpResponse::NotFound); + return ServerRequest.WriteResponse(HttpResponseCode::NotFound); } break; @@ -89,12 +89,12 @@ HttpCasService::HttpCasService(CasStore& Store) : m_CasStore(Store) // URI hash must match content hash if (PayloadHash != Hash) { - return ServerRequest.WriteResponse(HttpResponse::BadRequest); + return ServerRequest.WriteResponse(HttpResponseCode::BadRequest); } m_CasStore.InsertChunk(Payload, PayloadHash); - return ServerRequest.WriteResponse(HttpResponse::OK); + return ServerRequest.WriteResponse(HttpResponseCode::OK); } break; } @@ -129,11 +129,11 @@ HttpCasService::HandleRequest(zen::HttpServerRequest& Request) if (InsertResult.New) { - return Request.WriteResponse(HttpResponse::Created); + return Request.WriteResponse(HttpResponseCode::Created); } else { - return Request.WriteResponse(HttpResponse::OK); + return Request.WriteResponse(HttpResponseCode::OK); } } break; diff --git a/zenserver/compute/apply.cpp b/zenserver/compute/apply.cpp index 939ac3362..b46945d88 100644 --- a/zenserver/compute/apply.cpp +++ b/zenserver/compute/apply.cpp @@ -351,12 +351,12 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, if (auto It = m_WorkerMap.find(WorkerId); It == m_WorkerMap.end()) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } else { const WorkerDesc& Desc = It->second; - return HttpReq.WriteResponse(HttpResponse::OK, Desc.Descriptor); + return HttpReq.WriteResponse(HttpResponseCode::OK, Desc.Descriptor); } } break; @@ -388,7 +388,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, spdlog::debug("worker {}: all attachments already available", WorkerId); - return HttpReq.WriteResponse(HttpResponse::NoContent); + return HttpReq.WriteResponse(HttpResponseCode::NoContent); } else { @@ -406,7 +406,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, spdlog::debug("worker {}: need {} attachments", WorkerId, ChunkSet.GetChunkSet().size()); - return HttpReq.WriteResponse(HttpResponse::NotFound, ResponseWriter.Save()); + return HttpReq.WriteResponse(HttpResponseCode::NotFound, ResponseWriter.Save()); } } break; @@ -456,7 +456,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, m_WorkerMap.insert_or_assign(WorkerId, WorkerDesc{.Descriptor = Obj}); - return HttpReq.WriteResponse(HttpResponse::NoContent); + return HttpReq.WriteResponse(HttpResponseCode::NoContent); } break; } @@ -495,7 +495,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, if (auto It = m_WorkerMap.find(WorkerId); It == m_WorkerMap.end()) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } else { @@ -538,7 +538,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, CbPackage Output = ExecAction(Worker, RequestObject); - return HttpReq.WriteResponse(HttpResponse::OK, Output); + return HttpReq.WriteResponse(HttpResponseCode::OK, Output); } CbObjectWriter Cbo; @@ -552,7 +552,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, Cbo.EndArray(); CbObject Response = Cbo.Save(); - return HttpReq.WriteResponse(HttpResponse::NotFound, Response); + return HttpReq.WriteResponse(HttpResponseCode::NotFound, Response); } break; @@ -595,7 +595,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, CbPackage Output = ExecAction(Worker, ActionObj); - return HttpReq.WriteResponse(HttpResponse::OK, Output); + return HttpReq.WriteResponse(HttpResponseCode::OK, Output); } break; } @@ -659,7 +659,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, if (!AllOk) { // TODO: Could report all the missing pieces in the response here - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } std::string Executable8{RequestObject["cmd"].AsString()}; @@ -681,7 +681,7 @@ HttpFunctionService::HttpFunctionService(CasStore& Store, CidStore& InCidStore, Response << "exitcode" << Job.ExitCode(); - return HttpReq.WriteResponse(HttpResponse::OK, Response.Save()); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save()); } break; } diff --git a/zenserver/diag/diagsvcs.h b/zenserver/diag/diagsvcs.h index 82b7bdf15..51ee98f67 100644 --- a/zenserver/diag/diagsvcs.h +++ b/zenserver/diag/diagsvcs.h @@ -25,17 +25,17 @@ public: if (Uri == "hello"sv) { - Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kText, u8"hello world!"sv); + Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kText, u8"hello world!"sv); // OutputLogMessageInternal(&LogPoint, 0, 0); } else if (Uri == "1K"sv) { - Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, m_1k); + Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, m_1k); } else if (Uri == "1M"sv) { - Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, m_1m); + Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, m_1m); } else if (Uri == "1M_1k"sv) { @@ -47,7 +47,7 @@ public: Buffers.push_back(m_1k); } - Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, Buffers); + Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, Buffers); } else if (Uri == "1G"sv) { @@ -59,7 +59,7 @@ public: Buffers.push_back(m_1m); } - Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, Buffers); + Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, Buffers); } else if (Uri == "1G_1k"sv) { @@ -71,7 +71,7 @@ public: Buffers.push_back(m_1k); } - Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kBinary, Buffers); + Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kBinary, Buffers); } } @@ -95,7 +95,7 @@ public: switch (Request.RequestVerb()) { case zen::HttpVerb::kGet: - return Request.WriteResponse(zen::HttpResponse::OK, zen::HttpContentType::kText, u8"OK!"sv); + return Request.WriteResponse(zen::HttpResponseCode::OK, zen::HttpContentType::kText, u8"OK!"sv); } } diff --git a/zenserver/projectstore.cpp b/zenserver/projectstore.cpp index d49fb616e..ffed50e9a 100644 --- a/zenserver/projectstore.cpp +++ b/zenserver/projectstore.cpp @@ -909,7 +909,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } // Parse Request @@ -940,7 +940,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (Payload.Size() <= sizeof(RequestHeader)) { - HttpReq.WriteResponse(HttpResponse::BadRequest); + HttpReq.WriteResponse(HttpResponseCode::BadRequest); } RequestHeader RequestHdr; @@ -948,7 +948,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (RequestHdr.Magic != RequestHeader::kMagic) { - HttpReq.WriteResponse(HttpResponse::BadRequest); + HttpReq.WriteResponse(HttpResponseCode::BadRequest); } std::vector<RequestChunkEntry> RequestedChunks; @@ -1020,7 +1020,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) ResponsePtr += sizeof(ResponseChunk); } - return HttpReq.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, OutBlobs); + return HttpReq.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, OutBlobs); }, HttpVerb::kPost); @@ -1038,7 +1038,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } ProjectStore::Oplog& Log = *FoundLog; @@ -1063,7 +1063,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) Response.EndArray(); - return HttpReq.WriteResponse(HttpResponse::OK, Response.Save()); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save()); }, HttpVerb::kGet); @@ -1080,7 +1080,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } ProjectStore::Oplog& Log = *FoundLog; @@ -1093,10 +1093,10 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) { CbObjectWriter Response; Response << "size" << Value.Size(); - return HttpReq.WriteResponse(HttpResponse::OK, Response.Save()); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save()); } - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); }, HttpVerb::kGet); @@ -1124,7 +1124,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) } else { - return HttpReq.WriteResponse(HttpResponse::BadRequest); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest); } } @@ -1137,7 +1137,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) } else { - return HttpReq.WriteResponse(HttpResponse::BadRequest); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest); } } @@ -1147,7 +1147,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } ProjectStore::Oplog& Log = *FoundLog; @@ -1162,7 +1162,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) case HttpVerb::kGet: if (!Value) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } if (Verb == HttpVerb::kHead) @@ -1185,10 +1185,10 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) // Send only a subset of data IoBuffer InnerValue(Value, Offset, Size); - return HttpReq.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, InnerValue); + return HttpReq.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, InnerValue); } - return HttpReq.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, Value); + return HttpReq.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Value); } }, HttpVerb::kGet | HttpVerb::kHead); @@ -1217,7 +1217,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) } else { - return HttpReq.WriteResponse(HttpResponse::BadRequest); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest); } } @@ -1230,7 +1230,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) } else { - return HttpReq.WriteResponse(HttpResponse::BadRequest); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest); } } @@ -1240,7 +1240,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) IoBuffer Value = m_CasStore.FindChunk(Hash); if (!Value) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } if (IsOffset) @@ -1258,10 +1258,10 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) // Send only a subset of data IoBuffer InnerValue(Value, Offset, Size); - return HttpReq.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, InnerValue); + return HttpReq.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, InnerValue); } - return HttpReq.WriteResponse(HttpResponse::OK, HttpContentType::kBinary, Value); + return HttpReq.WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Value); }, HttpVerb::kGet); @@ -1277,7 +1277,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } // This operation takes a list of referenced hashes and decides which @@ -1312,7 +1312,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) Cbo.EndArray(); CbObject Response = Cbo.Save(); - return HttpReq.WriteResponse(HttpResponse::OK, Response); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response); }, HttpVerb::kPost); @@ -1340,7 +1340,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } ProjectStore::Oplog& Log = *FoundLog; @@ -1389,21 +1389,21 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) CbPackage Package; if (!Package.TryLoad(Payload, &UniqueBuffer::Alloc, &Resolver)) { - return HttpReq.WriteResponse(HttpResponse::BadRequest, HttpContentType::kText, "Invalid package"); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest, HttpContentType::kText, "Invalid package"); } if (!IsValid) { // TODO: emit diagnostics identifying missing chunks - return HttpReq.WriteResponse(HttpResponse::NotFound, HttpContentType::kText, "Missing chunk reference"); + return HttpReq.WriteResponse(HttpResponseCode::NotFound, HttpContentType::kText, "Missing chunk reference"); } CbObject Core = Package.GetObject(); if (!Core["key"sv]) { - return HttpReq.WriteResponse(HttpResponse::BadRequest, HttpContentType::kText, "No oplog entry key specified"); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest, HttpContentType::kText, "No oplog entry key specified"); } // Write core to oplog @@ -1412,12 +1412,12 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (OpLsn == ProjectStore::Oplog::kInvalidOp) { - return HttpReq.WriteResponse(HttpResponse::BadRequest); + return HttpReq.WriteResponse(HttpResponseCode::BadRequest); } m_Log.info("new op #{:4} - {}/{} ({:>6}) {}", OpLsn, ProjectId, OplogId, NiceBytes(Payload.Size()), Core["key"sv].AsString()); - HttpReq.WriteResponse(HttpResponse::Created); + HttpReq.WriteResponse(HttpResponseCode::Created); }, HttpVerb::kPost); @@ -1428,7 +1428,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) // TODO: look up op and respond with the payload! - HttpReq.WriteResponse(HttpResponse::Accepted, HttpContentType::kText, u8"yeee"sv); + HttpReq.WriteResponse(HttpResponseCode::Accepted, HttpContentType::kText, u8"yeee"sv); }, HttpVerb::kGet); @@ -1444,7 +1444,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (!ProjectIt) { - return Req.ServerRequest().WriteResponse(HttpResponse::NotFound, + return Req.ServerRequest().WriteResponse(HttpResponseCode::NotFound, HttpContentType::kText, "project {} not found"_format(ProjectId)); } @@ -1459,7 +1459,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (!OplogIt) { - return Req.ServerRequest().WriteResponse(HttpResponse::NotFound, + return Req.ServerRequest().WriteResponse(HttpResponseCode::NotFound, HttpContentType::kText, "oplog {} not found in project {}"_format(OplogId, ProjectId)); } @@ -1469,7 +1469,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) CbObjectWriter Cb; Cb << "id"sv << Log.OplogId() << "project"sv << Prj.Identifier << "tempdir"sv << Log.TempDir(); - Req.ServerRequest().WriteResponse(HttpResponse::OK, Cb.Save()); + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Cb.Save()); } break; @@ -1482,18 +1482,18 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (!Prj.NewOplog(OplogId)) { // TODO: indicate why the operation failed! - return Req.ServerRequest().WriteResponse(HttpResponse::InternalServerError); + return Req.ServerRequest().WriteResponse(HttpResponseCode::InternalServerError); } m_Log.info("established oplog {} / {}", ProjectId, OplogId); - return Req.ServerRequest().WriteResponse(HttpResponse::Created); + return Req.ServerRequest().WriteResponse(HttpResponseCode::Created); } // I guess this should ultimately be used to execute RPCs but for now, it // does absolutely nothing - return Req.ServerRequest().WriteResponse(HttpResponse::BadRequest); + return Req.ServerRequest().WriteResponse(HttpResponseCode::BadRequest); } break; @@ -1503,7 +1503,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) ProjectIt->DeleteOplog(OplogId); - return Req.ServerRequest().WriteResponse(HttpResponse::OK); + return Req.ServerRequest().WriteResponse(HttpResponseCode::OK); } break; } @@ -1522,7 +1522,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (FoundLog == nullptr) { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } CbObjectWriter Response; @@ -1542,7 +1542,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) } else { - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } } else @@ -1555,7 +1555,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) } } - return HttpReq.WriteResponse(HttpResponse::OK, Response.Save()); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save()); }, HttpVerb::kGet); @@ -1585,7 +1585,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) EngineRoot, ProjectRoot); - Req.ServerRequest().WriteResponse(HttpResponse::Created); + Req.ServerRequest().WriteResponse(HttpResponseCode::Created); } break; @@ -1595,7 +1595,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (!ProjectIt) { - return Req.ServerRequest().WriteResponse(HttpResponse::NotFound, + return Req.ServerRequest().WriteResponse(HttpResponseCode::NotFound, HttpContentType::kText, "project {} not found"_format(ProjectId)); } @@ -1609,7 +1609,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) Prj.IterateOplogs([&](const ProjectStore::Oplog& I) { Response << "id"sv << I.OplogId(); }); Response.EndArray(); // oplogs - Req.ServerRequest().WriteResponse(HttpResponse::OK, Response.Save()); + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response.Save()); } break; @@ -1619,7 +1619,7 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects) if (!ProjectIt) { - return Req.ServerRequest().WriteResponse(HttpResponse::NotFound, + return Req.ServerRequest().WriteResponse(HttpResponseCode::NotFound, HttpContentType::kText, "project {} not found"_format(ProjectId)); } diff --git a/zenserver/testing/httptest.cpp b/zenserver/testing/httptest.cpp index 0639c2b53..653f76046 100644 --- a/zenserver/testing/httptest.cpp +++ b/zenserver/testing/httptest.cpp @@ -8,18 +8,16 @@ HttpTestingService::HttpTestingService() { m_Router.RegisterRoute( "hello", - [this](HttpRouterRequest& Req) { Req.ServerRequest().WriteResponse(HttpResponse::OK); }, + [this](HttpRouterRequest& Req) { Req.ServerRequest().WriteResponse(HttpResponseCode::OK); }, HttpVerb::kGet); m_Router.RegisterRoute( "echo", [this](HttpRouterRequest& Req) { IoBuffer Body = Req.ServerRequest().ReadPayload(); - Req.ServerRequest().WriteResponse(HttpResponse::OK, HttpContentType::kBinary, Body); + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, HttpContentType::kBinary, Body); }, HttpVerb::kPost); - - m_Router.RegisterRoute("package", m_PackageHandler); } HttpTestingService::~HttpTestingService() @@ -38,11 +36,4 @@ HttpTestingService::HandleRequest(HttpServerRequest& Request) m_Router.HandleRequest(Request); } -void -HttpTestingService::PackageHandler::HandleRequest(HttpRouterRequest& Req) -{ - IoBuffer Body = Req.ServerRequest().ReadPayload(); - Req.ServerRequest().WriteResponse(HttpResponse::OK, HttpContentType::kBinary, Body); -} - } // namespace zen diff --git a/zenserver/testing/httptest.h b/zenserver/testing/httptest.h index 696543616..18652db71 100644 --- a/zenserver/testing/httptest.h +++ b/zenserver/testing/httptest.h @@ -22,13 +22,6 @@ public: private: HttpRequestRouter m_Router; - - struct PackageHandler : public PackageEndpointHandler - { - virtual void HandleRequest(HttpRouterRequest& Request) override; - }; - - PackageHandler m_PackageHandler; }; } // namespace zen diff --git a/zenserver/testing/launch.cpp b/zenserver/testing/launch.cpp index d06fae3e2..b031193d5 100644 --- a/zenserver/testing/launch.cpp +++ b/zenserver/testing/launch.cpp @@ -409,7 +409,7 @@ HttpLaunchService::HttpLaunchService(CasStore& Store, const std::filesystem::pat Cbo.EndArray(); CbObject Response = Cbo.Save(); - return HttpReq.WriteResponse(HttpResponse::OK, Response); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response); } break; } @@ -470,7 +470,7 @@ HttpLaunchService::HttpLaunchService(CasStore& Store, const std::filesystem::pat if (!AllOk) { // TODO: Could report all the missing pieces in the response here - return HttpReq.WriteResponse(HttpResponse::NotFound); + return HttpReq.WriteResponse(HttpResponseCode::NotFound); } std::string Executable8{RequestObject["cmd"].AsString()}; @@ -492,7 +492,7 @@ HttpLaunchService::HttpLaunchService(CasStore& Store, const std::filesystem::pat Response << "exitcode" << Job.ExitCode(); - return HttpReq.WriteResponse(HttpResponse::OK, Response.Save()); + return HttpReq.WriteResponse(HttpResponseCode::OK, Response.Save()); } break; } |