summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-08-16 14:41:42 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-08-16 14:41:42 -0700
commit1ce0dcf0eab6a490c13a691f046f0e3eaee29384 (patch)
tree97000434f416ee929628a2d7f3c064becd19432f /controller
parent1387e15c1b585d6305606c91e7ce3c320e8aa760 (diff)
downloadinfinitytier-1ce0dcf0eab6a490c13a691f046f0e3eaee29384.tar.gz
infinitytier-1ce0dcf0eab6a490c13a691f046f0e3eaee29384.zip
Another Central harnessed mode fix.
Diffstat (limited to 'controller')
-rw-r--r--controller/EmbeddedNetworkController.cpp2
-rw-r--r--controller/EmbeddedNetworkController.hpp2
-rw-r--r--controller/JSONDB.cpp8
3 files changed, 3 insertions, 9 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index 257fef57..3ca0f536 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -721,6 +721,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
json &revj = member["revision"];
member["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
_db.saveNetworkMember(nwid,address,member);
+ onNetworkMemberUpdate(nwid,address);
}
_addMemberNonPersistedFields(nwid,address,member,now);
@@ -973,6 +974,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
json &revj = network["revision"];
network["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
_db.saveNetwork(nwid,network);
+ onNetworkUpdate(nwid);
}
JSONDB::NetworkSummaryInfo ns;
diff --git a/controller/EmbeddedNetworkController.hpp b/controller/EmbeddedNetworkController.hpp
index 6200e910..cbbe07ac 100644
--- a/controller/EmbeddedNetworkController.hpp
+++ b/controller/EmbeddedNetworkController.hpp
@@ -93,7 +93,7 @@ public:
void handleRemoteTrace(const ZT_RemoteTrace &rt);
- // Called by JSONDB when networks and network members are changed
+ // Called on update via POST or by JSONDB on external update of network or network member records
void onNetworkUpdate(const uint64_t networkId);
void onNetworkMemberUpdate(const uint64_t networkId,const uint64_t memberId);
diff --git a/controller/JSONDB.cpp b/controller/JSONDB.cpp
index a0dd50c2..9813239e 100644
--- a/controller/JSONDB.cpp
+++ b/controller/JSONDB.cpp
@@ -164,15 +164,11 @@ void JSONDB::saveNetwork(const uint64_t networkId,const nlohmann::json &networkC
char n[64];
OSUtils::ztsnprintf(n,sizeof(n),"network/%.16llx",(unsigned long long)networkId);
writeRaw(n,OSUtils::jsonDump(networkConfig,-1));
- bool update;
{
Mutex::Lock _l(_networks_m);
_NW &nw = _networks[networkId];
- update = !nw.config.empty();
nw.config = nlohmann::json::to_msgpack(networkConfig);
}
- if (update)
- _parent->onNetworkUpdate(networkId);
_recomputeSummaryInfo(networkId);
}
@@ -181,16 +177,12 @@ void JSONDB::saveNetworkMember(const uint64_t networkId,const uint64_t nodeId,co
char n[256];
OSUtils::ztsnprintf(n,sizeof(n),"network/%.16llx/member/%.10llx",(unsigned long long)networkId,(unsigned long long)nodeId);
writeRaw(n,OSUtils::jsonDump(memberConfig,-1));
- bool update;
{
Mutex::Lock _l(_networks_m);
std::vector<uint8_t> &m = _networks[networkId].members[nodeId];
- update = !m.empty();
m = nlohmann::json::to_msgpack(memberConfig);
_members[nodeId].insert(networkId);
}
- if (update)
- _parent->onNetworkMemberUpdate(networkId,nodeId);
_recomputeSummaryInfo(networkId);
}