aboutsummaryrefslogtreecommitdiff
path: root/zenutil/cache/cacherequests.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2022-10-13 10:40:26 +0200
committerGitHub <[email protected]>2022-10-13 01:40:26 -0700
commit0c7fbe43ed582cd791191d6c0935cd8693e1208e (patch)
tree77757d193734f8927d474c5a072ffe4af8579513 /zenutil/cache/cacherequests.cpp
parentdisable project store GC (#179) (diff)
downloadzen-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.cpp27
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");
{