diff options
Diffstat (limited to 'zenserver/projectstore.cpp')
| -rw-r--r-- | zenserver/projectstore.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/zenserver/projectstore.cpp b/zenserver/projectstore.cpp index 93276f029..19978c3e9 100644 --- a/zenserver/projectstore.cpp +++ b/zenserver/projectstore.cpp @@ -1544,8 +1544,13 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects) std::vector<IoHash> MissingChunks; CbPackage::AttachmentResolver Resolver = [&](const IoHash& Hash) -> SharedBuffer { - IoHash AttachmentId; + if (m_CidStore.ContainsChunk(Hash)) + { + // Return null attachment as we already have it, no point in reading it and storing it again + return {}; + } + IoHash AttachmentId; if (IsUsingSalt) { IoHash AttachmentSpec[]{SaltHash, Hash}; @@ -1557,12 +1562,7 @@ HttpProjectService::HttpProjectService(CidStore& Store, ProjectStore* Projects) } std::filesystem::path AttachmentPath = Oplog.TempPath() / AttachmentId.ToHexString(); - - if (IoBuffer CompressedData = m_CidStore.FindChunkByCid(Hash)) - { - return SharedBuffer(std::move(CompressedData)); - } - else if (IoBuffer Data = IoBufferBuilder::MakeFromTemporaryFile(AttachmentPath)) + if (IoBuffer Data = IoBufferBuilder::MakeFromTemporaryFile(AttachmentPath)) { return SharedBuffer(std::move(Data)); } |