aboutsummaryrefslogtreecommitdiff
path: root/src/feature/nodelist/nodelist.c
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2021-02-03 08:51:36 -0500
committerDavid Goulet <dgoulet@torproject.org>2021-02-03 08:51:36 -0500
commit0f8195406e0a2a97a3167d4bb40484f4bd091289 (patch)
tree67ae6ae209a13642abcd453ec4d6b50bf5b03708 /src/feature/nodelist/nodelist.c
parent705fd37875c4acd61037da6a2680678ae128e4a4 (diff)
parent98590621bb49cbecd601085f7e03697f8783ff7b (diff)
downloadtor-0f8195406e0a2a97a3167d4bb40484f4bd091289.tar.gz
tor-0f8195406e0a2a97a3167d4bb40484f4bd091289.zip
Merge branch 'maint-0.3.5' into maint-0.4.3
Diffstat (limited to 'src/feature/nodelist/nodelist.c')
-rw-r--r--src/feature/nodelist/nodelist.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/feature/nodelist/nodelist.c b/src/feature/nodelist/nodelist.c
index 5df8e63073..66b9a83c20 100644
--- a/src/feature/nodelist/nodelist.c
+++ b/src/feature/nodelist/nodelist.c
@@ -674,8 +674,12 @@ nodelist_set_consensus(networkstatus_t *ns)
address_set_free(the_nodelist->node_addrs);
addr_port_set_free(the_nodelist->reentry_set);
the_nodelist->node_addrs = address_set_new(estimated_addresses);
- /* Times two here is for both the ORPort and DirPort. */
- the_nodelist->reentry_set = addr_port_set_new(estimated_addresses * 2);
+ /* Times two here is for both the ORPort and DirPort. We double it again in
+ * order to minimize as much as possible the false positive when looking up
+ * this set. Reason is that Exit streams that are legitimate but end up a
+ * false positive against this set will thus be considered reentry and be
+ * rejected which means a bad UX. */
+ the_nodelist->reentry_set = addr_port_set_new(estimated_addresses * 2 * 2);
SMARTLIST_FOREACH_BEGIN(ns->routerstatus_list, routerstatus_t *, rs) {
node_t *node = node_get_or_create(rs->identity_digest);