diff --git a/node/Peer.cpp b/node/Peer.cpp index 827dc7de1..2e9f6a2bc 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -109,7 +109,7 @@ void Peer::received( outp.armor(_key,true,path->nextOutgoingCounter()); path->send(RR,tPtr,outp.data(),outp.size(),now); } - suboptimalPath = true; + isClusterSuboptimalPath = true; } } #endif diff --git a/node/Peer.hpp b/node/Peer.hpp index 6cf30feb0..b9d85404d 100644 --- a/node/Peer.hpp +++ b/node/Peer.hpp @@ -316,11 +316,8 @@ public: */ inline bool hasLocalClusterOptimalPath(uint64_t now) const { - for(unsigned int p=0,np=_numPaths;palive(now)) && (!_paths[p].localClusterSuboptimal) ) - return true; - } - return false; + Mutex::Lock _l(_paths_m); + return ( ((_v4Path.p)&&(_v4Path.p->alive(now))&&(!_v4Path.localClusterSuboptimal)) || ((_v6Path.p)&&(_v6Path.p->alive(now))&&(!_v6Path.localClusterSuboptimal)) ); } #endif