From eaa7fc77ed1d2b2a4d8a792834708dc7006382aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= Date: Sat, 6 Dec 2014 16:13:06 -0500 Subject: [PATCH] searches: improve handling of disconnected nodes in search tables --- src/dht.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dht.cpp b/src/dht.cpp index c21cebb4..54bbe68c 100644 --- a/src/dht.cpp +++ b/src/dht.cpp @@ -641,6 +641,10 @@ Dht::searchSendGetValues(Search& sr, SearchNode *n) void Dht::searchStep(Search& sr) { + sr.nodes.erase(std::remove_if (sr.nodes.begin(), sr.nodes.end(), [this](const SearchNode& n) { + return n.pinged >= 3 && n.reply_time < now.tv_sec - 7200; + }), sr.nodes.end()); + if (sr.nodes.empty()) { // No nodes... yet ? // Nothing to do, wait for the timeout.