summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
Diffstat (limited to 'src/or')
-rw-r--r--src/or/circuitbuild.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index b121c6e196..a2d2b95c42 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -2503,8 +2503,13 @@ choose_random_entry(cpath_build_state_t *state)
* be a long time til we get it. -RD */
r = add_an_entry_guard(NULL, 0);
if (r) {
- smartlist_add(live_entry_guards, r);
entry_guards_changed();
+ /* XXX we start over here in case the new node we added shares
+ * a family with our exit node. There's a chance that we'll just
+ * load up on entry guards here, if the network we're using is
+ * one big family. Perhaps we should teach add_an_entry_guard()
+ * to understand nodes-to-avoid-if-possible? -RD */
+ goto retry;
}
}
if (!r && need_uptime) {