From 0fb22df633cde88f69fc93b07b24e5d33bf2c03e Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 9 Nov 2017 17:01:16 -0500 Subject: Get ephemeral status fields out of the configs. They do not belong there and it just complicates things. --- controller/EmbeddedNetworkController.hpp | 43 +++++--------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) (limited to 'controller/EmbeddedNetworkController.hpp') diff --git a/controller/EmbeddedNetworkController.hpp b/controller/EmbeddedNetworkController.hpp index bc59b359..b04a44c9 100644 --- a/controller/EmbeddedNetworkController.hpp +++ b/controller/EmbeddedNetworkController.hpp @@ -43,20 +43,14 @@ #include "../ext/json/json.hpp" +#include "DB.hpp" +#include "FileDB.hpp" #ifdef ZT_CONTROLLER_USE_RETHINKDB #include "RethinkDB.hpp" -#else -#include "FileDB.hpp" #endif namespace ZeroTier { -#ifdef ZT_CONTROLLER_USE_RETHINKDB -typedef RethinkDB ControllerDB; -#else -typedef FileDB ControllerDB; -#endif - class Node; class EmbeddedNetworkController : public NetworkController @@ -130,7 +124,6 @@ private: if (!member.count("vMinor")) member["vMinor"] = -1; if (!member.count("vRev")) member["vRev"] = -1; if (!member.count("vProto")) member["vProto"] = -1; - if (!member.count("physicalAddr")) member["physicalAddr"] = nlohmann::json(); if (!member.count("remoteTraceTarget")) member["remoteTraceTarget"] = nlohmann::json(); member["objtype"] = "member"; } @@ -160,42 +153,18 @@ private: } network["objtype"] = "network"; } - inline void _addNetworkNonPersistedFields(const uint64_t nwid,nlohmann::json &network,int64_t now,const ControllerDB::NetworkSummaryInfo &ns) - { - network["clock"] = now; - network["authorizedMemberCount"] = ns.authorizedMemberCount; - network["totalMemberCount"] = ns.totalMemberCount; - { - std::lock_guard l(_memberStatus_l); - unsigned long ac = 0; - for(auto ms=_memberStatus.begin();ms!=_memberStatus.end();++ms) { - if ((ms->first.networkId == nwid)&&(ms->second.online(now))) - ++ac; - } - network["activeMemberCount"] = ac; - } - } - inline void _removeNetworkNonPersistedFields(nlohmann::json &network) + inline void _cleanNetwork(nlohmann::json &network) { network.erase("clock"); network.erase("authorizedMemberCount"); network.erase("activeMemberCount"); network.erase("totalMemberCount"); - // legacy fields network.erase("lastModified"); } - inline void _addMemberNonPersistedFields(uint64_t nwid,uint64_t nodeId,nlohmann::json &member,int64_t now) - { - member["clock"] = now; - { - std::lock_guard l(_memberStatus_l); - member["online"] = _memberStatus[_MemberStatusKey(nwid,nodeId)].online(now); - } - } - inline void _removeMemberNonPersistedFields(nlohmann::json &member) + inline void _cleanMember(nlohmann::json &member) { member.erase("clock"); - // legacy fields + member.erase("physicalAddr"); member.erase("recentLog"); member.erase("lastModified"); member.erase("lastRequestMetaData"); @@ -244,7 +213,7 @@ private: Identity _signingId; std::string _signingIdAddressString; NetworkController::Sender *_sender; - std::unique_ptr _db; + std::unique_ptr _db; BlockingQueue< _RQEntry * > _queue; std::vector _threads; std::mutex _threads_l; -- cgit v1.2.3