Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Another attempt at fixing the Flag2 job of jenkins
[simgrid.git] / examples / cpp / dht-kademlia / node.cpp
index 49374f8..68d56eb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2022. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2023. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -50,10 +50,9 @@ bool Node::join(unsigned int known_id)
       XBT_DEBUG("Received an answer from the node I know.");
       got_answer = true;
       // retrieve the node list and ping them.
-      const Answer* node_list = msg->answer_.get();
-      if (node_list) {
-        for (auto const& contact : node_list->getNodes())
-          routingTableUpdate(contact.first);
+      if (const Answer* node_list = msg->answer_.get()) {
+        for (auto const& [contact, _] : node_list->getNodes())
+          routingTableUpdate(contact);
       } else {
         handleFindNode(msg);
       }
@@ -105,11 +104,11 @@ unsigned int Node::sendFindNodeToBest(const Answer* node_list) const
   unsigned int i           = 0;
   unsigned int j           = 0;
   unsigned int destination = node_list->getDestinationId();
-  for (auto const& node_to_query : node_list->getNodes()) {
+  for (auto const& [node_to_query, _] : node_list->getNodes()) {
     /* We need to have at most "KADEMLIA_ALPHA" requests each time, according to the protocol */
     /* Gets the node we want to send the query to */
-    if (node_to_query.first != id_) { /* No need to query ourselves */
-      sendFindNode(node_to_query.first, destination);
+    if (node_to_query != id_) { /* No need to query ourselves */
+      sendFindNode(node_to_query, destination);
       j++;
     }
     i++;
@@ -213,8 +212,8 @@ bool Node::findNode(unsigned int id_to_find, bool count_in_stats)
         if (msg->answer_ && msg->answer_->getDestinationId() == id_to_find) {
           routingTableUpdate(msg->sender_id_);
           // Handle the answer
-          for (auto const& contact : node_list->getNodes())
-            routingTableUpdate(contact.first);
+          for (auto const& [contact, _] : node_list->getNodes())
+            routingTableUpdate(contact);
           answers++;
 
           nodes_added = node_list->merge(msg->answer_.get());