Mercurial > hg > orthanc
diff OrthancServer/Sources/ServerContext.cpp @ 4640:66109d24d26e
"ETag" headers for metadata and attachments now allow strong comparison (MD5 is included)
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 26 Apr 2021 15:22:44 +0200 |
parents | 88e892e25a51 |
children | 3294385a245a |
line wrap: on
line diff
--- a/OrthancServer/Sources/ServerContext.cpp Thu Apr 22 13:27:57 2021 +0200 +++ b/OrthancServer/Sources/ServerContext.cpp Mon Apr 26 15:22:44 2021 +0200 @@ -799,7 +799,8 @@ try { int64_t newRevision; // ignored - StoreStatus status = index_.AddAttachment(newRevision, modified, resourceId, true, revision); + StoreStatus status = index_.AddAttachment(newRevision, modified, resourceId, + true, revision, modified.GetUncompressedMD5()); if (status != StoreStatus_Success) { accessor.Remove(modified); @@ -986,7 +987,7 @@ int64_t newRevision; AddAttachment(newRevision, instancePublicId, FileContentType_DicomUntilPixelData, dicom.empty() ? NULL: dicom.c_str(), pixelDataOffset, - false /* no old revision */, -1 /* dummy revision */); + false /* no old revision */, -1 /* dummy revision */, "" /* dummy MD5 */); } } } @@ -1162,7 +1163,8 @@ const void* data, size_t size, bool hasOldRevision, - int64_t oldRevision) + int64_t oldRevision, + const std::string& oldMD5) { LOG(INFO) << "Adding attachment " << EnumerationToString(attachmentType) << " to resource " << resourceId; @@ -1172,7 +1174,8 @@ StorageAccessor accessor(area_, GetMetricsRegistry()); FileInfo attachment = accessor.Write(data, size, attachmentType, compression, storeMD5_); - StoreStatus status = index_.AddAttachment(newRevision, attachment, resourceId, hasOldRevision, oldRevision); + StoreStatus status = index_.AddAttachment( + newRevision, attachment, resourceId, hasOldRevision, oldRevision, oldMD5); if (status != StoreStatus_Success) { accessor.Remove(attachment);