[tor-commits] [tor/master] Support the ed25519 map in nodelist_assert_ok()

nickm at torproject.org nickm at torproject.org
Fri Sep 8 16:22:17 UTC 2017


commit fed3a08d8c32f2010caba06c888f28716e3abb0a
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Aug 9 14:00:30 2017 -0400

    Support the ed25519 map in nodelist_assert_ok()
---
 src/or/nodelist.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/or/nodelist.c b/src/or/nodelist.c
index 93d362d8e..104915d29 100644
--- a/src/or/nodelist.c
+++ b/src/or/nodelist.c
@@ -725,9 +725,27 @@ nodelist_assert_ok(void)
     tor_assert(node_sl_idx == node->nodelist_idx);
   } SMARTLIST_FOREACH_END(node);
 
+  /* Every node listed with an ed25519 identity should be listed by that
+   * identity.
+   */
+  SMARTLIST_FOREACH_BEGIN(the_nodelist->nodes, node_t *, node) {
+    if (!ed25519_public_key_is_zero(&node->ed25519_id)) {
+      tor_assert(node == node_get_by_ed25519_id(&node->ed25519_id));
+    }
+  } SMARTLIST_FOREACH_END(node);
+
+  node_t **idx;
+  HT_FOREACH(idx, nodelist_ed_map, &the_nodelist->nodes_by_ed_id) {
+    node_t *node = *idx;
+    tor_assert(node == node_get_by_ed25519_id(&node->ed25519_id));
+  }
+
   tor_assert((long)smartlist_len(the_nodelist->nodes) ==
              (long)HT_SIZE(&the_nodelist->nodes_by_id));
 
+  tor_assert((long)smartlist_len(the_nodelist->nodes) >=
+             (long)HT_SIZE(&the_nodelist->nodes_by_ed_id));
+
   digestmap_free(dm, NULL);
 }
 





More information about the tor-commits mailing list