summaryrefslogtreecommitdiff
path: root/node/Peer.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-31 11:41:14 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2014-03-31 11:41:14 -0700
commit8e587ae481631160527fd412d41c5d66439b3fda (patch)
treef3224d9d99071f884f07d4cf67277860665389aa /node/Peer.cpp
parentacb056e3b1997cbbf95b78787c385b134b924d15 (diff)
downloadinfinitytier-8e587ae481631160527fd412d41c5d66439b3fda.tar.gz
infinitytier-8e587ae481631160527fd412d41c5d66439b3fda.zip
Clean dead paths from peers.
Diffstat (limited to 'node/Peer.cpp')
-rw-r--r--node/Peer.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/node/Peer.cpp b/node/Peer.cpp
index a0b53276..f7d24fee 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -187,4 +187,16 @@ bool Peer::sendPing(const RuntimeEnvironment *_r,uint64_t now,bool firstSinceRes
return sent;
}
+void Peer::clean(uint64_t now)
+{
+ Mutex::Lock _l(_lock);
+ unsigned long i = 0,o = 0,l = _paths.size();
+ while (i != l) {
+ if (_paths[i].active(now))
+ _paths[o++] = _paths[i];
+ ++i;
+ }
+ _paths.resize(o);
+}
+
} // namespace ZeroTier