diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-04-30 21:09:41 -0700 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-04-30 21:09:41 -0700 |
| commit | 9279bac385d842d7f031306bc9a68bbb737bd3ce (patch) | |
| tree | b582112fe43b1ba87d5115af32f300d8b6122763 /node/Peer.cpp | |
| parent | 105e1a016f5a4a5a6c2ed51bceb33e4f684a135f (diff) | |
| download | infinitytier-9279bac385d842d7f031306bc9a68bbb737bd3ce.tar.gz infinitytier-9279bac385d842d7f031306bc9a68bbb737bd3ce.zip | |
Fix deadlock in SelfAwareness by deferring reconnects.
Diffstat (limited to 'node/Peer.cpp')
| -rw-r--r-- | node/Peer.cpp | 10 |
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 |
