Răsfoiți Sursa

Cluster build fix.

Adam Ierymenko 9 ani în urmă
părinte
comite
f2d2df2b11
3 a modificat fișierele cu 4 adăugiri și 4 ștergeri
  1. 1 1
      node/Cluster.cpp
  2. 1 1
      node/Peer.cpp
  3. 2 2
      node/Peer.hpp

+ 1 - 1
node/Cluster.cpp

@@ -361,7 +361,7 @@ void Cluster::handleIncomingStateMessage(const void *msg,unsigned int len)
 					case CLUSTER_MESSAGE_WANT_PEER: {
 						const Address zeroTierAddress(dmsg.field(ptr,ZT_ADDRESS_LENGTH),ZT_ADDRESS_LENGTH); ptr += ZT_ADDRESS_LENGTH;
 						SharedPtr<Peer> peer(RR->topology->getPeerNoCache(zeroTierAddress));
-						if ( (peer) && (peer->hasClusterOptimalPath(RR->node->now())) ) {
+						if ( (peer) && (peer->hasLocalClusterOptimalPath(RR->node->now())) ) {
 							Buffer<1024> buf;
 							peer->identity().serialize(buf);
 							Mutex::Lock _l2(_members[fromMemberId].lock);

+ 1 - 1
node/Peer.cpp

@@ -175,7 +175,7 @@ void Peer::received(
 				_paths[slot].lastReceive = now;
 				_paths[slot].path = path;
 #ifdef ZT_ENABLE_CLUSTER
-				_paths[p].localClusterSuboptimal = suboptimalPath;
+				_paths[slot].localClusterSuboptimal = suboptimalPath;
 				if (RR->cluster)
 					RR->cluster->broadcastHavePeer(_id);
 #endif

+ 2 - 2
node/Peer.hpp

@@ -289,10 +289,10 @@ public:
 	 * @param now Current time
 	 * @return True if this peer has at least one active direct path that is not cluster-suboptimal
 	 */
-	inline bool hasClusterOptimalPath(uint64_t now) const
+	inline bool hasLocalClusterOptimalPath(uint64_t now) const
 	{
 		for(unsigned int p=0,np=_numPaths;p<np;++p) {
-			if ( (_paths[p].path->alive(now)) && ((_paths[p].clusterWeights & 1) != 0) )
+			if ( (_paths[p].path->alive(now)) && (!_paths[p].localClusterSuboptimal) )
 				return true;
 		}
 		return false;