Skip to content
Snippets Groups Projects
Commit b800012c authored by Sébastien Blin's avatar Sébastien Blin Committed by Adrien Béraud
Browse files

proxyserver: add topic to msgpack

parent ebeff202
No related branches found
No related tags found
No related merge requests found
...@@ -392,7 +392,7 @@ private: ...@@ -392,7 +392,7 @@ private:
template <typename Packer> template <typename Packer>
void msgpack_pack(Packer& p) const void msgpack_pack(Packer& p) const
{ {
p.pack_map(2 + (sessionCtx ? 1 : 0) + (clientId.empty() ? 0 : 1) + (type == PushType::None ? 0 : 2)); p.pack_map(2 + (sessionCtx ? 1 : 0) + (clientId.empty() ? 0 : 1) + (type == PushType::None ? 0 : 2) + (topic.empty() ? 0 : 1));
p.pack("value"); p.pack(value); p.pack("value"); p.pack(value);
p.pack("exp"); p.pack(to_time_t(expiration)); p.pack("exp"); p.pack(to_time_t(expiration));
if (not clientId.empty()) { if (not clientId.empty()) {
...@@ -406,6 +406,9 @@ private: ...@@ -406,6 +406,9 @@ private:
p.pack("t"); p.pack(type); p.pack("t"); p.pack(type);
p.pack("token"); p.pack(pushToken); p.pack("token"); p.pack(pushToken);
} }
if (not topic.empty()) {
p.pack("top"); p.pack(topic);
}
} }
void msgpack_unpack(const msgpack::object& o); void msgpack_unpack(const msgpack::object& o);
...@@ -437,7 +440,7 @@ private: ...@@ -437,7 +440,7 @@ private:
template <typename Packer> template <typename Packer>
void msgpack_pack(Packer& p) const void msgpack_pack(Packer& p) const
{ {
p.pack_map(sessionCtx ? 4 : 3); p.pack_map(3 + (sessionCtx ? 1 : 0) + (topic.empty() ? 0 : 1));
p.pack("cid"); p.pack(clientId); p.pack("cid"); p.pack(clientId);
p.pack("exp"); p.pack(to_time_t(expiration)); p.pack("exp"); p.pack(to_time_t(expiration));
if (sessionCtx) { if (sessionCtx) {
...@@ -445,6 +448,9 @@ private: ...@@ -445,6 +448,9 @@ private:
p.pack("sid"); p.pack(sessionCtx->sessionId); p.pack("sid"); p.pack(sessionCtx->sessionId);
} }
p.pack("t"); p.pack(type); p.pack("t"); p.pack(type);
if (!topic.empty()) {
p.pack("top"); p.pack(topic);
}
} }
void msgpack_unpack(const msgpack::object& o); void msgpack_unpack(const msgpack::object& o);
......
...@@ -173,6 +173,9 @@ DhtProxyServer::PermanentPut::msgpack_unpack(const msgpack::object& o) ...@@ -173,6 +173,9 @@ DhtProxyServer::PermanentPut::msgpack_unpack(const msgpack::object& o)
if (auto val = findMapValue(o, "value"sv)) { if (auto val = findMapValue(o, "value"sv)) {
value = std::make_shared<dht::Value>(*val); value = std::make_shared<dht::Value>(*val);
} }
if (auto top = findMapValue(o, "top"sv)) {
topic = top->as<std::string>();
}
} }
#ifdef OPENDHT_PUSH_NOTIFICATIONS #ifdef OPENDHT_PUSH_NOTIFICATIONS
...@@ -194,6 +197,9 @@ DhtProxyServer::Listener::msgpack_unpack(const msgpack::object& o) ...@@ -194,6 +197,9 @@ DhtProxyServer::Listener::msgpack_unpack(const msgpack::object& o)
if (auto t = findMapValue(o, "t"sv)) { if (auto t = findMapValue(o, "t"sv)) {
type = t->as<PushType>(); type = t->as<PushType>();
} }
if (auto top = findMapValue(o, "top"sv)) {
topic = top->as<std::string>();
}
} }
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment