diff options
| author | Zousar Shaker <[email protected]> | 2025-09-25 10:52:11 -0600 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-09-25 10:52:11 -0600 |
| commit | ae107e8e7fe1cdf573a93c8d8908592ea671ee51 (patch) | |
| tree | 2accd8ecaa662f3527b7ba6567c07aed8cbe6693 /src/zenserver | |
| parent | 5.7.2-pre2 (diff) | |
| parent | Improvement to Incomplete Result Iteration (diff) | |
| download | zen-ae107e8e7fe1cdf573a93c8d8908592ea671ee51.tar.xz zen-ae107e8e7fe1cdf573a93c8d8908592ea671ee51.zip | |
Merge pull request #509 from ue-foundation/zs/put-overwrite-policy-response
Zs/put overwrite policy response
Diffstat (limited to 'src/zenserver')
| -rw-r--r-- | src/zenserver/cache/httpstructuredcache.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/zenserver/cache/httpstructuredcache.cpp b/src/zenserver/cache/httpstructuredcache.cpp index c83065506..bc3f4ee20 100644 --- a/src/zenserver/cache/httpstructuredcache.cpp +++ b/src/zenserver/cache/httpstructuredcache.cpp @@ -821,7 +821,8 @@ HttpStructuredCacheService::HandleGetCacheRecord(HttpServerRequest& Request, con const bool SkipData = EnumHasAllFlags(PolicyFromUrl, CachePolicy::SkipData); const bool PartialRecord = EnumHasAllFlags(PolicyFromUrl, CachePolicy::PartialRecord); - bool Success = false; + bool Success = false; + uint32_t MissingCount = 0; ZenCacheValue ClientResultValue; if (!EnumHasAnyFlags(PolicyFromUrl, CachePolicy::Query)) { @@ -844,7 +845,6 @@ HttpStructuredCacheService::HandleGetCacheRecord(HttpServerRequest& Request, con if (ContentType == ZenContentType::kCbObject) { CbPackage Package; - uint32_t MissingCount = 0; CbValidateError ValidateError = CbValidateError::None; if (CbObject PackageObject = ValidateAndReadCompactBinaryObject(std::move(ClientResultValue.Value), ValidateError); ValidateError == CbValidateError::None) @@ -936,7 +936,9 @@ HttpStructuredCacheService::HandleGetCacheRecord(HttpServerRequest& Request, con else { // kCbPackage handled SkipData when constructing the ClientResultValue, kcbObject ignores SkipData - return Request.WriteResponse(HttpResponseCode::OK, ClientResultValue.Value.GetContentType(), ClientResultValue.Value); + return Request.WriteResponse((MissingCount == 0) ? HttpResponseCode::OK : HttpResponseCode::PartialContent, + ClientResultValue.Value.GetContentType(), + ClientResultValue.Value); } } else if (!HasUpstream || !EnumHasAllFlags(PolicyFromUrl, CachePolicy::QueryRemote)) @@ -1221,8 +1223,11 @@ HttpStructuredCacheService::HandlePutCacheRecord(HttpServerRequest& Request, con break; } - return PutResult.Message.empty() ? Request.WriteResponse(ResponseCode) - : Request.WriteResponse(ResponseCode, zen::HttpContentType::kText, PutResult.Message); + if (PutResult.Details) + { + Request.WriteResponse(ResponseCode, PutResult.Details); + } + return Request.WriteResponse(ResponseCode); }; const HttpContentType ContentType = Request.RequestContentType(); |