From: Nick Mathewson Date: Tue, 8 Apr 2014 19:49:49 +0000 (-0400) Subject: Make num_bridges_usable work properly. X-Git-Tag: tor-0.2.5.4-alpha~29^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6ab10a546663b509d189ce16645b11af0e83d41c;p=thirdparty%2Ftor.git Make num_bridges_usable work properly. My first implementation was broken, since it returned "whether there is one bridge" rather than "how many bridges." Also, the implementation for the n_options_out feature in choose_random_entry_impl was completely broken due to a missing *. --- diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index a08fda4240..da3521ecd3 100644 --- a/src/or/entrynodes.c +++ b/src/or/entrynodes.c @@ -1013,7 +1013,7 @@ choose_random_entry_impl(cpath_build_state_t *state, int for_directory, const int num_needed = decide_num_guards(options, for_directory); if (n_options_out) - n_options_out = 0; + *n_options_out = 0; if (chosen_exit) { nodelist_add_node_and_family(exit_family, chosen_exit); @@ -2215,8 +2215,8 @@ any_bridge_descriptors_known(void) return choose_random_entry(NULL) != NULL; } -/** Return the number of bridges that have descriptors that - * are marked with purpose 'bridge' and are running. +/** Return the number of bridges that have descriptors that are marked with + * purpose 'bridge' and are running. */ static int num_bridges_usable(void) @@ -2224,7 +2224,7 @@ num_bridges_usable(void) int n_options = 0; tor_assert(get_options()->UseBridges); (void) choose_random_entry_impl(NULL, 0, 0, &n_options); - return n_options == 1; + return n_options; } /** Return 1 if there are any directory conns fetching bridge descriptors