summaryrefslogtreecommitdiff
path: root/node/Node.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2013-10-02 16:12:10 -0400
committerAdam Ierymenko <adam.ierymenko@gmail.com>2013-10-02 16:12:10 -0400
commit58538500f26d6e362bac0275c11628222fdcac02 (patch)
treed0e03d06167049f40402575280ed42cba66e2056 /node/Node.cpp
parentb8a9b429931eedce28990571df1294b48e75edc2 (diff)
downloadinfinitytier-58538500f26d6e362bac0275c11628222fdcac02.tar.gz
infinitytier-58538500f26d6e362bac0275c11628222fdcac02.zip
Clean up some routine stuff like pings, and stop keeping links open forever even if there are no frames passing between them.
Diffstat (limited to 'node/Node.cpp')
-rw-r--r--node/Node.cpp32
1 files changed, 4 insertions, 28 deletions
diff --git a/node/Node.cpp b/node/Node.cpp
index ef0598de..740bc89e 100644
--- a/node/Node.cpp
+++ b/node/Node.cpp
@@ -496,34 +496,10 @@ Node::ReasonForTermination Node::run()
_r->sw->sendHELLO((*p)->address());
}
} else {
- std::vector< SharedPtr<Peer> > needPing,needFirewallOpener;
-
- if (resynchronize) {
- _r->topology->eachPeer(Topology::CollectPeersWithDirectPath(needPing));
- } else {
- _r->topology->eachPeer(Topology::CollectPeersThatNeedPing(needPing));
- }
-
- for(std::vector< SharedPtr<Peer> >::iterator p(needPing.begin());p!=needPing.end();++p) {
- try {
- _r->sw->sendHELLO((*p)->address());
- } catch (std::exception &exc) {
- LOG("unexpected exception sending HELLO to %s: %s",(*p)->address().toString().c_str());
- } catch ( ... ) {
- LOG("unexpected exception sending HELLO to %s: (unknown)",(*p)->address().toString().c_str());
- }
- }
-
- _r->topology->eachPeer(Topology::CollectPeersThatNeedFirewallOpener(needFirewallOpener));
- for(std::vector< SharedPtr<Peer> >::iterator p(needFirewallOpener.begin());p!=needFirewallOpener.end();++p) {
- try {
- (*p)->sendFirewallOpener(_r,now);
- } catch (std::exception &exc) {
- LOG("unexpected exception sending firewall opener to %s: %s",(*p)->address().toString().c_str(),exc.what());
- } catch ( ... ) {
- LOG("unexpected exception sending firewall opener to %s: (unknown)",(*p)->address().toString().c_str());
- }
- }
+ if (resynchronize)
+ _r->topology->eachPeer(Topology::PingAllActivePeers(_r,now));
+ else _r->topology->eachPeer(Topology::PingPeersThatNeedPing(_r,now));
+ _r->topology->eachPeer(Topology::OpenPeersThatNeedFirewallOpener(_r,now));
}
} catch (std::exception &exc) {
LOG("unexpected exception running ping check cycle: %s",exc.what());