]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Finish renaming digestset_contains to digestset_probably_contains
authorNick Mathewson <nickm@torproject.org>
Tue, 26 Jun 2018 17:20:54 +0000 (13:20 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 26 Jun 2018 17:27:50 +0000 (13:27 -0400)
Since bloom filters are probabilistic, it's nice to make it clear
that the "contains" operation can have false positives.

src/lib/crypt_ops/digestset.h
src/or/entrynodes.c
src/or/routerlist.c
src/test/bench.c
src/test/test_containers.c

index 3b5d62c310c3d92664f3c4f9726c8188eb5193e1..328979ae0d453f70c2da9a1845c60050f17e6f8e 100644 (file)
@@ -26,7 +26,4 @@ void digestset_add(digestset_t *set, const char *addr);
 int digestset_probably_contains(const digestset_t *set,
                                 const char *addr);
 
-// XXXX to remove.
-#define digestset_contains digestset_probably_contains
-
 #endif
index 9d27d80a84fe28b50e8f4fa94a3549bcb3e397f3..47e689b5cbd503561b9d539362433493b9684fee 100644 (file)
@@ -1065,7 +1065,7 @@ get_eligible_guards(const or_options_t *options,
           continue;
       }
       ++n_guards;
-      if (digestset_contains(sampled_guard_ids, node->identity))
+      if (digestset_probably_contains(sampled_guard_ids, node->identity))
         continue;
       smartlist_add(eligible_guards, (node_t*)node);
     } SMARTLIST_FOREACH_END(node);
index a7dda68a56fea6a72d805f1df8b60d73fb889e97..66967f13f50e616e1931884dd9e5e1c6a0250026 100644 (file)
@@ -4116,7 +4116,8 @@ routerlist_remove_old_cached_routers_with_id(time_t now,
     signed_descriptor_t *r_next;
     lifespans[i-lo].idx = i;
     if (r->last_listed_as_valid_until >= now ||
-        (retain && digestset_contains(retain, r->signed_descriptor_digest))) {
+        (retain && digestset_probably_contains(retain,
+                                               r->signed_descriptor_digest))) {
       must_keep[i-lo] = 1;
     }
     if (i < hi) {
@@ -4211,7 +4212,7 @@ routerlist_remove_old_routers(void)
       router = smartlist_get(routerlist->routers, i);
       if (router->cache_info.published_on <= cutoff &&
           router->cache_info.last_listed_as_valid_until < now &&
-          !digestset_contains(retain,
+          !digestset_probably_contains(retain,
                           router->cache_info.signed_descriptor_digest)) {
         /* Too old: remove it.  (If we're a cache, just move it into
          * old_routers.) */
@@ -4232,7 +4233,7 @@ routerlist_remove_old_routers(void)
     sd = smartlist_get(routerlist->old_routers, i);
     if (sd->published_on <= cutoff &&
         sd->last_listed_as_valid_until < now &&
-        !digestset_contains(retain, sd->signed_descriptor_digest)) {
+        !digestset_probably_contains(retain, sd->signed_descriptor_digest)) {
       /* Too old.  Remove it. */
       routerlist_remove_old(routerlist, sd, i--);
     }
index aa4af703f5d90e11bb049d5617166bd8090f0abe..6653f4942f291346e76123ce97f9ff714e30851d 100644 (file)
@@ -404,18 +404,20 @@ bench_dmap(void)
          NANOCOUNT(pt3, pt4, iters*elts));
 
   for (i = 0; i < iters; ++i) {
-    SMARTLIST_FOREACH(sl, const char *, cp, n += digestset_contains(ds, cp));
-    SMARTLIST_FOREACH(sl2, const char *, cp, n += digestset_contains(ds, cp));
+    SMARTLIST_FOREACH(sl, const char *, cp,
+                      n += digestset_probably_contains(ds, cp));
+    SMARTLIST_FOREACH(sl2, const char *, cp,
+                      n += digestset_probably_contains(ds, cp));
   }
   end = perftime();
-  printf("digestset_contains: %.2f ns per element.\n",
+  printf("digestset_probably_contains: %.2f ns per element.\n",
          NANOCOUNT(pt4, end, iters*elts*2));
   /* We need to use this, or else the whole loop gets optimized out. */
   printf("Hits == %d\n", n);
 
   for (i = 0; i < fpostests; ++i) {
     crypto_rand(d, 20);
-    if (digestset_contains(ds, d)) ++fp;
+    if (digestset_probably_contains(ds, d)) ++fp;
   }
   printf("False positive rate on digestset: %.2f%%\n",
          (fp/(double)fpostests)*100);
index acb7543b391177d15814d2a48c192e393dd471a1..5c712a9b16905e539e38de1afe75611aeb105602 100644 (file)
@@ -644,18 +644,18 @@ test_container_digestset(void *arg)
   }
   set = digestset_new(1000);
   SMARTLIST_FOREACH(included, const char *, cp,
-                    if (digestset_contains(set, cp))
+                    if (digestset_probably_contains(set, cp))
                       ok = 0);
   tt_assert(ok);
   SMARTLIST_FOREACH(included, const char *, cp,
                     digestset_add(set, cp));
   SMARTLIST_FOREACH(included, const char *, cp,
-                    if (!digestset_contains(set, cp))
+                    if (!digestset_probably_contains(set, cp))
                       ok = 0);
   tt_assert(ok);
   for (i = 0; i < 1000; ++i) {
     crypto_rand(d, DIGEST_LEN);
-    if (digestset_contains(set, d))
+    if (digestset_probably_contains(set, d))
       ++false_positives;
   }
   tt_int_op(50, OP_GT, false_positives); /* Should be far lower. */