Merge remote branch 'arma/bug2403' into maint-0.2.2

This commit is contained in:
Nick Mathewson 2011-02-22 18:38:03 -05:00
commit 16b8b9b00f
2 changed files with 8 additions and 1 deletions

6
changes/bug2403 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes:
- In the special case where you configure a public exit relay as your
bridge, Tor would be willing to use that exit relay as the last
hop in your circuit as well. Now we fail that circuit instead.
Bugfix on 0.2.0.12-alpha. Fixes bug 2403. Reported by "piebeer".

View File

@ -4063,7 +4063,6 @@ choose_random_entry(cpath_build_state_t *state)
int preferred_min, consider_exit_family = 0; int preferred_min, consider_exit_family = 0;
if (chosen_exit) { if (chosen_exit) {
smartlist_add(exit_family, chosen_exit);
routerlist_add_family(exit_family, chosen_exit); routerlist_add_family(exit_family, chosen_exit);
consider_exit_family = 1; consider_exit_family = 1;
} }
@ -4086,6 +4085,8 @@ choose_random_entry(cpath_build_state_t *state)
r = entry_is_live(entry, need_uptime, need_capacity, 0, &msg); r = entry_is_live(entry, need_uptime, need_capacity, 0, &msg);
if (!r) if (!r)
continue; /* down, no point */ continue; /* down, no point */
if (r == chosen_exit)
continue; /* don't pick the same node for entry and exit */
if (consider_exit_family && smartlist_isin(exit_family, r)) if (consider_exit_family && smartlist_isin(exit_family, r))
continue; /* avoid relays that are family members of our exit */ continue; /* avoid relays that are family members of our exit */
if (options->EntryNodes && if (options->EntryNodes &&