mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-26 22:10:09 +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"];
|
json &revj = member["revision"];
|
||||||
member["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
|
member["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
|
||||||
_db.saveNetworkMember(nwid,address,member);
|
_db.saveNetworkMember(nwid,address,member);
|
||||||
|
onNetworkMemberUpdate(nwid,address);
|
||||||
}
|
}
|
||||||
|
|
||||||
_addMemberNonPersistedFields(nwid,address,member,now);
|
_addMemberNonPersistedFields(nwid,address,member,now);
|
||||||
@ -973,6 +974,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpPOST(
|
|||||||
json &revj = network["revision"];
|
json &revj = network["revision"];
|
||||||
network["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
|
network["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
|
||||||
_db.saveNetwork(nwid,network);
|
_db.saveNetwork(nwid,network);
|
||||||
|
onNetworkUpdate(nwid);
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONDB::NetworkSummaryInfo ns;
|
JSONDB::NetworkSummaryInfo ns;
|
||||||
|
@ -93,7 +93,7 @@ public:
|
|||||||
|
|
||||||
void handleRemoteTrace(const ZT_RemoteTrace &rt);
|
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 onNetworkUpdate(const uint64_t networkId);
|
||||||
void onNetworkMemberUpdate(const uint64_t networkId,const uint64_t memberId);
|
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];
|
char n[64];
|
||||||
OSUtils::ztsnprintf(n,sizeof(n),"network/%.16llx",(unsigned long long)networkId);
|
OSUtils::ztsnprintf(n,sizeof(n),"network/%.16llx",(unsigned long long)networkId);
|
||||||
writeRaw(n,OSUtils::jsonDump(networkConfig,-1));
|
writeRaw(n,OSUtils::jsonDump(networkConfig,-1));
|
||||||
bool update;
|
|
||||||
{
|
{
|
||||||
Mutex::Lock _l(_networks_m);
|
Mutex::Lock _l(_networks_m);
|
||||||
_NW &nw = _networks[networkId];
|
_NW &nw = _networks[networkId];
|
||||||
update = !nw.config.empty();
|
|
||||||
nw.config = nlohmann::json::to_msgpack(networkConfig);
|
nw.config = nlohmann::json::to_msgpack(networkConfig);
|
||||||
}
|
}
|
||||||
if (update)
|
|
||||||
_parent->onNetworkUpdate(networkId);
|
|
||||||
_recomputeSummaryInfo(networkId);
|
_recomputeSummaryInfo(networkId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,16 +177,12 @@ void JSONDB::saveNetworkMember(const uint64_t networkId,const uint64_t nodeId,co
|
|||||||
char n[256];
|
char n[256];
|
||||||
OSUtils::ztsnprintf(n,sizeof(n),"network/%.16llx/member/%.10llx",(unsigned long long)networkId,(unsigned long long)nodeId);
|
OSUtils::ztsnprintf(n,sizeof(n),"network/%.16llx/member/%.10llx",(unsigned long long)networkId,(unsigned long long)nodeId);
|
||||||
writeRaw(n,OSUtils::jsonDump(memberConfig,-1));
|
writeRaw(n,OSUtils::jsonDump(memberConfig,-1));
|
||||||
bool update;
|
|
||||||
{
|
{
|
||||||
Mutex::Lock _l(_networks_m);
|
Mutex::Lock _l(_networks_m);
|
||||||
std::vector<uint8_t> &m = _networks[networkId].members[nodeId];
|
std::vector<uint8_t> &m = _networks[networkId].members[nodeId];
|
||||||
update = !m.empty();
|
|
||||||
m = nlohmann::json::to_msgpack(memberConfig);
|
m = nlohmann::json::to_msgpack(memberConfig);
|
||||||
_members[nodeId].insert(networkId);
|
_members[nodeId].insert(networkId);
|
||||||
}
|
}
|
||||||
if (update)
|
|
||||||
_parent->onNetworkMemberUpdate(networkId,nodeId);
|
|
||||||
_recomputeSummaryInfo(networkId);
|
_recomputeSummaryInfo(networkId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user