mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-26 14:00:05 +00:00
Another Central harnessed mode fix.
This commit is contained in:
parent
1387e15c1b
commit
1ce0dcf0ea
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user