diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-10-02 16:12:10 -0400 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2013-10-02 16:12:10 -0400 |
| commit | 58538500f26d6e362bac0275c11628222fdcac02 (patch) | |
| tree | d0e03d06167049f40402575280ed42cba66e2056 /node/Node.cpp | |
| parent | b8a9b429931eedce28990571df1294b48e75edc2 (diff) | |
| download | infinitytier-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.cpp | 32 |
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()); |
