aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@torproject.org>2023-09-20 23:35:36 +0000
committerMike Perry <mikeperry-git@torproject.org>2023-09-20 23:35:36 +0000
commitd499de58132fd45f8e20d508641e0ded392d045f (patch)
tree7b692fd260bf8a4726f92d5352fb5ebb82a51fc5
parent03a31dbb6879d3afeff3a67e2bf16fcec949891b (diff)
downloadtor-d499de58132fd45f8e20d508641e0ded392d045f.tar.gz
tor-d499de58132fd45f8e20d508641e0ded392d045f.zip
Bug 40862: Check if circuits are unused more ways
-rw-r--r--src/core/or/conflux_pool.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/or/conflux_pool.c b/src/core/or/conflux_pool.c
index 46d36cf106..4a7e941372 100644
--- a/src/core/or/conflux_pool.c
+++ b/src/core/or/conflux_pool.c
@@ -1322,7 +1322,12 @@ count_client_usable_sets(void)
log_warn(LD_BUG, "Client conflux linked set leg without a circuit");
continue;
}
- if (!CONST_TO_ORIGIN_CIRCUIT(leg->circ)->unusable_for_new_conns) {
+
+ /* The maze marks circuits used several different ways. If any of
+ * them are marked for this leg, launch a new one. */
+ if (!CONST_TO_ORIGIN_CIRCUIT(leg->circ)->unusable_for_new_conns &&
+ !CONST_TO_ORIGIN_CIRCUIT(leg->circ)->isolation_values_set &&
+ !leg->circ->timestamp_dirty) {
count++;
}
} DIGEST256MAP_FOREACH_END;