Преглед на файлове

Another Central harnessed mode fix.

Adam Ierymenko преди 8 години
родител
ревизия
1ce0dcf0ea
променени са 3 файла, в които са добавени 3 реда и са изтрити 9 реда
  1. 2 0
      controller/EmbeddedNetworkController.cpp
  2. 1 1
      controller/EmbeddedNetworkController.hpp
  3. 0 8
      controller/JSONDB.cpp

+ 2 - 0
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;

+ 1 - 1
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);
 

+ 0 - 8
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);
 }