aboutsummaryrefslogtreecommitdiff
path: root/zenserver/projectstore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/projectstore.cpp')
-rw-r--r--zenserver/projectstore.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/zenserver/projectstore.cpp b/zenserver/projectstore.cpp
index 0dc0da1ae..c2c8c2421 100644
--- a/zenserver/projectstore.cpp
+++ b/zenserver/projectstore.cpp
@@ -1057,8 +1057,21 @@ HttpProjectService::HttpProjectService(CasStore& Store, ProjectStore* Projects)
IoBuffer Payload = HttpReq.ReadPayload();
+ CbPackage::AttachmentResolver Resolver = [&](const IoHash& Hash) -> SharedBuffer {
+ std::filesystem::path AttachmentPath = Log.TempPath() / Hash.ToHexString();
+
+ if (IoBuffer Data = IoBufferBuilder::MakeFromFile(AttachmentPath.native().c_str()))
+ {
+ return SharedBuffer::Clone(MemoryView(Data.Data(), Data.Size()));
+ }
+ else
+ {
+ return {};
+ }
+ };
+
CbPackage Package;
- Package.Load(Payload);
+ Package.Load(Payload, &UniqueBuffer::Alloc, &Resolver);
CbObject Core = Package.GetObject();