From 58538500f26d6e362bac0275c11628222fdcac02 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 2 Oct 2013 16:12:10 -0400 Subject: Clean up some routine stuff like pings, and stop keeping links open forever even if there are no frames passing between them. --- node/Peer.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'node/Peer.cpp') diff --git a/node/Peer.cpp b/node/Peer.cpp index 1c7eec34..ec9edfa6 100644 --- a/node/Peer.cpp +++ b/node/Peer.cpp @@ -126,6 +126,26 @@ bool Peer::sendFirewallOpener(const RuntimeEnvironment *_r,uint64_t now) return sent; } +bool Peer::sendPing(const RuntimeEnvironment *_r,uint64_t now) +{ + bool sent = false; + if (_ipv4p.addr) { + if (_r->sw->sendHELLO(SharedPtr(this),_ipv4p.localPort,_ipv4p.addr)) { + _ipv4p.lastSend = now; + _dirty = true; + sent = true; + } + } + if (_ipv6p.addr) { + if (_r->sw->sendHELLO(SharedPtr(this),_ipv6p.localPort,_ipv6p.addr)) { + _ipv6p.lastSend = now; + _dirty = true; + sent = true; + } + } + return sent; +} + void Peer::setPathAddress(const InetAddress &addr,bool fixed) { if (addr.isV4()) { -- cgit v1.2.3