From 9d7f6d287a1b850157f71a1172f3d27867735fc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 18 May 2016 02:19:06 -0400
Subject: [PATCH] dht: clear candidate on expire

---
 src/dht.cpp | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/dht.cpp b/src/dht.cpp
index 28eb07f9..08af886c 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -695,13 +695,11 @@ Dht::searchSendGetValues(std::shared_ptr<Search> sr, SearchNode* pn, bool update
     auto onExpired =
         [this,ws](const Request& status, bool over) mutable {
             if (auto sr = ws.lock()) {
-                auto srn = sr->getNode(status.node);
-                if (srn and not srn->candidate) {
+                if (auto srn = sr->getNode(status.node)) {
                     /*DHT_LOG.DEBUG("[search %s IPv%c] [node %s] 'get' expired",
                         sr->id.toString().c_str(), sr->af == AF_INET ? '4' : '6',
                         srn->node->toString().c_str());*/
-                    if (not over)
-                        srn->candidate = true;
+                    srn->candidate = not over;
                 }
                 scheduler.edit(sr->nextSearchStep, scheduler.time());
             }
-- 
GitLab