Adam Ierymenko 5 years ago
parent
commit
dde937e197
3 changed files with 13 additions and 9 deletions
  1. 2 1
      node/Node.cpp
  2. 7 5
      node/SelfAwareness.cpp
  3. 4 3
      node/Topology.hpp

+ 2 - 1
node/Node.cpp

@@ -201,12 +201,13 @@ struct _processBackgroundTasks_ping_eachPeer
 	void *tPtr;
 	Hashtable< void *,bool > *roots;
 
-	ZT_ALWAYS_INLINE void operator()(const SharedPtr<Peer> &peer)
+	ZT_ALWAYS_INLINE bool operator()(const SharedPtr<Peer> &peer)
 	{
 		if (!roots->contains((void *)peer.ptr())) {
 			unsigned int v4SendCount = 0,v6SendCount = 0;
 			peer->ping(tPtr,now,v4SendCount,v6SendCount);
 		}
+		return true;
 	}
 };
 

+ 7 - 5
node/SelfAwareness.cpp

@@ -36,13 +36,17 @@ namespace ZeroTier {
 class _ResetWithinScope
 {
 public:
-	inline _ResetWithinScope(void *tPtr,int64_t now,int inetAddressFamily,InetAddress::IpScope scope) :
+	ZT_ALWAYS_INLINE _ResetWithinScope(void *tPtr,int64_t now,int inetAddressFamily,InetAddress::IpScope scope) :
 		_now(now),
 		_tPtr(tPtr),
 		_family(inetAddressFamily),
 		_scope(scope) {}
 
-	inline void operator()(const SharedPtr<Peer> &p) { p->resetWithinScope(_tPtr,_scope,_family,_now); }
+	ZT_ALWAYS_INLINE bool operator()(const SharedPtr<Peer> &p)
+	{
+		p->resetWithinScope(_tPtr,_scope,_family,_now);
+		return true;
+	}
 
 private:
 	uint64_t _now;
@@ -53,9 +57,7 @@ private:
 
 SelfAwareness::SelfAwareness(const RuntimeEnvironment *renv) :
 	RR(renv),
-	_phy(128)
-{
-}
+	_phy(128) {}
 
 void SelfAwareness::iam(void *tPtr,const Address &reporter,const int64_t receivedOnLocalSocket,const InetAddress &reporterPhysicalAddress,const InetAddress &myPhysicalAddress,bool trusted,int64_t now)
 {

+ 4 - 3
node/Topology.hpp

@@ -243,7 +243,8 @@ public:
 		Address *a = (Address *)0;
 		SharedPtr<Peer> *p = (SharedPtr<Peer> *)0;
 		while (i.next(a,p)) {
-			f(*((const SharedPtr<Peer> *)p));
+			if (!f(*((const SharedPtr<Peer> *)p)))
+				break;
 		}
 	}
 
@@ -400,7 +401,7 @@ public:
 	 *
 	 * @param dnsName DNS name to remove
 	 */
-	ZT_ALWAYS_INLINE bool removeDynamicRoot(const Str &dnsName)
+	ZT_ALWAYS_INLINE void removeDynamicRoot(const Str &dnsName)
 	{
 		Mutex::Lock l(_dynamicRoots_l);
 		_dynamicRoots.erase(dnsName);
@@ -410,7 +411,7 @@ public:
 	/**
 	 * Remove all dynamic roots
 	 */
-	ZT_ALWAYS_INLINE bool clearDynamicRoots()
+	ZT_ALWAYS_INLINE void clearDynamicRoots()
 	{
 		Mutex::Lock l(_dynamicRoots_l);
 		_dynamicRoots.clear();