summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-04-14 18:02:04 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-04-14 18:02:04 -0700
commitf1c0563c40dc9e3ec5e975d3e1e8d6057ed6bd83 (patch)
tree7b3e3e6fd25204f79ba7a7dd239968b61b1510ff /node/Peer.cpp
parent139c4b56337c0cfe7458ecf5df4e12e38c2d4f8a (diff)
downloadinfinitytier-f1c0563c40dc9e3ec5e975d3e1e8d6057ed6bd83.tar.gz
infinitytier-f1c0563c40dc9e3ec5e975d3e1e8d6057ed6bd83.zip
Fix for cluster handoff.
Diffstat (limited to 'node/Peer.cpp')
-rw-r--r--node/Peer.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp
index 2711dd19..7ffe8926 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -169,7 +169,7 @@ void Peer::received(
if (verb == Packet::VERB_OK) {
Mutex::Lock _l(_paths_m);
if (path->address().ss_family == AF_INET) {
- if ((!_v4Path.p)||(!_v4Path.p->alive(now))||(path->preferenceRank() >= _v4Path.p->preferenceRank())) {
+ if ( (!_v4Path.p) || (!_v4Path.p->alive(now)) || ((_v4Path.p->address() != _v4ClusterPreferred)&&(path->preferenceRank() >= _v4Path.p->preferenceRank())) ) {
_v4Path.lr = now;
_v4Path.p = path;
#ifdef ZT_ENABLE_CLUSTER
@@ -179,7 +179,7 @@ void Peer::received(
#endif
}
} else if (path->address().ss_family == AF_INET6) {
- if ((!_v6Path.p)||(!_v6Path.p->alive(now))||(path->preferenceRank() >= _v6Path.p->preferenceRank())) {
+ if ( (!_v6Path.p) || (!_v6Path.p->alive(now)) || ((_v6Path.p->address() != _v6ClusterPreferred)&&(path->preferenceRank() >= _v6Path.p->preferenceRank())) ) {
_v6Path.lr = now;
_v6Path.p = path;
#ifdef ZT_ENABLE_CLUSTER