diff options
| author | Dan Engelbrecht <[email protected]> | 2024-06-11 15:40:11 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-06-11 15:40:11 +0200 |
| commit | 6c43936e06ccd834a4e69ff59b8327782dcb0a06 (patch) | |
| tree | 61815fbbe350e7ea0ffed65e64e342e50c0abce7 /src/zenserver/workspaces/httpworkspaces.cpp | |
| parent | 5.5.3-pre0 (diff) | |
| download | zen-6c43936e06ccd834a4e69ff59b8327782dcb0a06.tar.xz zen-6c43936e06ccd834a4e69ff59b8327782dcb0a06.zip | |
workspaces config and fixes (#92)
* fix alias request capture
* use single config file for workspaces
Diffstat (limited to 'src/zenserver/workspaces/httpworkspaces.cpp')
| -rw-r--r-- | src/zenserver/workspaces/httpworkspaces.cpp | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/src/zenserver/workspaces/httpworkspaces.cpp b/src/zenserver/workspaces/httpworkspaces.cpp index 534b72bd5..7242b2fba 100644 --- a/src/zenserver/workspaces/httpworkspaces.cpp +++ b/src/zenserver/workspaces/httpworkspaces.cpp @@ -265,7 +265,15 @@ HttpWorkspacesService::ChunkInfoRequest(HttpRouterRequest& Req) HttpContentType::kText, fmt::format("Invalid share id '{}'", Req.GetCapture(2))); } - ChunkInfoRequest(Req, WorkspaceId, ShareId); + const Oid ChunkId = Oid::TryFromHexString(Req.GetCapture(3)); + if (ChunkId == Oid::Zero) + { + m_WorkspacesStats.BadRequestCount++; + return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, + HttpContentType::kText, + fmt::format("Invalid chunk id '{}'", Req.GetCapture(3))); + } + ChunkInfoRequest(Req, WorkspaceId, ShareId, ChunkId); } void @@ -334,7 +342,15 @@ HttpWorkspacesService::ChunkRequest(HttpRouterRequest& Req) HttpContentType::kText, fmt::format("Invalid share id '{}'", Req.GetCapture(2))); } - ChunkRequest(Req, WorkspaceId, ShareId); + const Oid ChunkId = Oid::TryFromHexString(Req.GetCapture(3)); + if (ChunkId == Oid::Zero) + { + m_WorkspacesStats.BadRequestCount++; + return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, + HttpContentType::kText, + fmt::format("Invalid chunk id '{}'", Req.GetCapture(3))); + } + ChunkRequest(Req, WorkspaceId, ShareId, ChunkId); } void @@ -507,7 +523,15 @@ HttpWorkspacesService::ShareAliasChunkInfoRequest(HttpRouterRequest& Req) { return ServerRequest.WriteResponse(HttpResponseCode::NotFound); } - ChunkInfoRequest(Req, WorkspaceAndShareId.value().WorkspaceId, WorkspaceAndShareId.value().ShareId); + const Oid ChunkId = Oid::TryFromHexString(Req.GetCapture(2)); + if (ChunkId == Oid::Zero) + { + m_WorkspacesStats.BadRequestCount++; + return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, + HttpContentType::kText, + fmt::format("Invalid chunk id '{}'", Req.GetCapture(2))); + } + ChunkInfoRequest(Req, WorkspaceAndShareId.value().WorkspaceId, WorkspaceAndShareId.value().ShareId, ChunkId); } void @@ -564,7 +588,15 @@ HttpWorkspacesService::ShareAliasChunkRequest(HttpRouterRequest& Req) { return ServerRequest.WriteResponse(HttpResponseCode::NotFound); } - ChunkRequest(Req, WorkspaceAndShareId.value().WorkspaceId, WorkspaceAndShareId.value().ShareId); + const Oid ChunkId = Oid::TryFromHexString(Req.GetCapture(2)); + if (ChunkId == Oid::Zero) + { + m_WorkspacesStats.BadRequestCount++; + return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, + HttpContentType::kText, + fmt::format("Invalid chunk id '{}'", Req.GetCapture(2))); + } + ChunkRequest(Req, WorkspaceAndShareId.value().WorkspaceId, WorkspaceAndShareId.value().ShareId, ChunkId); } void @@ -671,18 +703,10 @@ HttpWorkspacesService::FilesRequest(HttpRouterRequest& Req, const Oid& Workspace } void -HttpWorkspacesService::ChunkInfoRequest(HttpRouterRequest& Req, const Oid& WorkspaceId, const Oid& ShareId) +HttpWorkspacesService::ChunkInfoRequest(HttpRouterRequest& Req, const Oid& WorkspaceId, const Oid& ShareId, const Oid& ChunkId) { - HttpServerRequest& ServerRequest = Req.ServerRequest(); - const Oid ChunkId = Oid::TryFromHexString(Req.GetCapture(3)); - if (ChunkId == Oid::Zero) - { - m_WorkspacesStats.BadRequestCount++; - return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, - HttpContentType::kText, - fmt::format("Invalid chunk id '{}'", Req.GetCapture(3))); - } - Workspaces::ShareFile File = m_Workspaces.GetWorkspaceShareChunkInfo(WorkspaceId, ShareId, ChunkId, GetSmallWorkerPool()); + HttpServerRequest& ServerRequest = Req.ServerRequest(); + Workspaces::ShareFile File = m_Workspaces.GetWorkspaceShareChunkInfo(WorkspaceId, ShareId, ChunkId, GetSmallWorkerPool()); if (File.Id != Oid::Zero) { CbObjectWriter Response; @@ -836,17 +860,9 @@ HttpWorkspacesService::EntriesRequest(HttpRouterRequest& Req, const Oid& Workspa } void -HttpWorkspacesService::ChunkRequest(HttpRouterRequest& Req, const Oid& WorkspaceId, const Oid& ShareId) +HttpWorkspacesService::ChunkRequest(HttpRouterRequest& Req, const Oid& WorkspaceId, const Oid& ShareId, const Oid& ChunkId) { HttpServerRequest& ServerRequest = Req.ServerRequest(); - const Oid ChunkId = Oid::TryFromHexString(Req.GetCapture(3)); - if (ChunkId == Oid::Zero) - { - m_WorkspacesStats.BadRequestCount++; - return ServerRequest.WriteResponse(HttpResponseCode::BadRequest, - HttpContentType::kText, - fmt::format("Invalid chunk id '{}'", Req.GetCapture(3))); - } uint64_t Offset = 0; uint64_t Size = ~(0ull); |