diff options
| author | Dan Engelbrecht <[email protected]> | 2022-10-13 10:40:26 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-10-13 01:40:26 -0700 |
| commit | 0c7fbe43ed582cd791191d6c0935cd8693e1208e (patch) | |
| tree | 77757d193734f8927d474c5a072ffe4af8579513 /zenutil/cache/cacherequests.cpp | |
| parent | disable project store GC (#179) (diff) | |
| download | zen-0c7fbe43ed582cd791191d6c0935cd8693e1208e.tar.xz zen-0c7fbe43ed582cd791191d6c0935cd8693e1208e.zip | |
Add "Accept" field in RPC request to gracefully handle requests from older instances (#180)
Diffstat (limited to 'zenutil/cache/cacherequests.cpp')
| -rw-r--r-- | zenutil/cache/cacherequests.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/zenutil/cache/cacherequests.cpp b/zenutil/cache/cacherequests.cpp index 2c14ef35b..0ac6c35ed 100644 --- a/zenutil/cache/cacherequests.cpp +++ b/zenutil/cache/cacherequests.cpp @@ -175,6 +175,7 @@ namespace cacherequests { { CbObjectView BatchObject = Package.GetObject(); ZEN_ASSERT(BatchObject["Method"].AsString() == "PutCacheRecords"); + AcceptMagic = BatchObject["AcceptType"].AsUInt32(0); CbObjectView Params = BatchObject["Params"].AsObjectView(); std::optional<std::string> RequestNamespace = GetRequestNamespace(Params); @@ -240,6 +241,11 @@ namespace cacherequests { CbObjectWriter Writer; Writer << "Method" << "PutCacheRecords"; + if (AcceptMagic != 0) + { + Writer << "Accept" << AcceptMagic; + } + Writer.BeginObject("Params"); { Writer << "DefaultPolicy" << WriteToString<128>(DefaultPolicy); @@ -325,6 +331,7 @@ namespace cacherequests { bool GetCacheRecordsRequest::Parse(const CbObjectView& RpcRequest) { ZEN_ASSERT(RpcRequest["Method"].AsString() == "GetCacheRecords"); + AcceptMagic = RpcRequest["AcceptType"].AsUInt32(0); CbObjectView Params = RpcRequest["Params"].AsObjectView(); std::optional<std::string> RequestNamespace = GetRequestNamespace(Params); @@ -361,6 +368,11 @@ namespace cacherequests { { Writer << "Method" << "GetCacheRecords"; + if (AcceptMagic != 0) + { + Writer << "Accept" << AcceptMagic; + } + Writer.BeginObject("Params"); { Writer << "DefaultPolicy" << WriteToString<128>(DefaultPolicy); @@ -513,6 +525,7 @@ namespace cacherequests { { CbObjectView BatchObject = Package.GetObject(); ZEN_ASSERT(BatchObject["Method"].AsString() == "PutCacheValues"); + AcceptMagic = BatchObject["AcceptType"].AsUInt32(0); CbObjectView Params = BatchObject["Params"].AsObjectView(); std::optional<std::string> RequestNamespace = cacherequests::GetRequestNamespace(Params); @@ -558,6 +571,10 @@ namespace cacherequests { CbObjectWriter Writer; Writer << "Method" << "PutCacheValues"; + if (AcceptMagic != 0) + { + Writer << "Accept" << AcceptMagic; + } Writer.BeginObject("Params"); { @@ -637,6 +654,7 @@ namespace cacherequests { bool GetCacheValuesRequest::Parse(const CbObjectView& BatchObject) { ZEN_ASSERT(BatchObject["Method"].AsString() == "GetCacheValues"); + AcceptMagic = BatchObject["AcceptType"].AsUInt32(0); CbObjectView Params = BatchObject["Params"].AsObjectView(); std::optional<std::string> RequestNamespace = cacherequests::GetRequestNamespace(Params); @@ -672,6 +690,10 @@ namespace cacherequests { CbObjectWriter Writer; Writer << "Method" << "GetCacheValues"; + if (AcceptMagic != 0) + { + Writer << "Accept" << AcceptMagic; + } Writer.BeginObject("Params"); { @@ -793,6 +815,7 @@ namespace cacherequests { bool GetCacheChunksRequest::Parse(const CbObjectView& BatchObject) { ZEN_ASSERT(BatchObject["Method"].AsString() == "GetCacheChunks"); + AcceptMagic = BatchObject["AcceptType"].AsUInt32(0); CbObjectView Params = BatchObject["Params"].AsObjectView(); std::optional<std::string> RequestNamespace = cacherequests::GetRequestNamespace(Params); @@ -833,6 +856,10 @@ namespace cacherequests { CbObjectWriter Writer; Writer << "Method" << "GetCacheChunks"; + if (AcceptMagic != 0) + { + Writer << "Accept" << AcceptMagic; + } Writer.BeginObject("Params"); { |