summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2015-04-30 21:09:41 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2015-04-30 21:09:41 -0700
commit9279bac385d842d7f031306bc9a68bbb737bd3ce (patch)
treeb582112fe43b1ba87d5115af32f300d8b6122763 /node/Peer.cpp
parent105e1a016f5a4a5a6c2ed51bceb33e4f684a135f (diff)
downloadinfinitytier-9279bac385d842d7f031306bc9a68bbb737bd3ce.tar.gz
infinitytier-9279bac385d842d7f031306bc9a68bbb737bd3ce.zip
Fix deadlock in SelfAwareness by deferring reconnects.
Diffstat (limited to 'node/Peer.cpp')
-rw-r--r--node/Peer.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp
index 526e3a28..7c0868eb 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -261,7 +261,7 @@ void Peer::clearPaths(bool fixedToo)
}
}
-void Peer::resetWithinScope(const RuntimeEnvironment *RR,InetAddress::IpScope scope,uint64_t now)
+bool Peer::resetWithinScope(const RuntimeEnvironment *RR,InetAddress::IpScope scope,uint64_t now)
{
unsigned int np = _numPaths;
unsigned int x = 0;
@@ -278,13 +278,7 @@ void Peer::resetWithinScope(const RuntimeEnvironment *RR,InetAddress::IpScope sc
++x;
}
_numPaths = y;
-
- if ((y < np)&&(alive(now))) {
- // Try to re-establish direct connectivity to this peer if it's alive
- // and we have forgotten paths to it.
- Packet outp(_id.address(),RR->identity.address(),Packet::VERB_NOP);
- RR->sw->send(outp,true);
- }
+ return (y < np);
}
void Peer::getBestActiveAddresses(uint64_t now,InetAddress &v4,InetAddress &v6,unsigned int maxDesperation) const