mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
r11970@catbus: nickm | 2007-02-27 19:17:27 -0500
Fix a bug found by Udo van den Heuvel: avoid an assertion failure when a controller sets and clears EntryNodes before the next call to choose_random_entry(). Also make a function static. svn:r9669
This commit is contained in:
parent
16f1008d01
commit
1a3e1c5510
@ -7,6 +7,10 @@ Changes in version 0.1.2.9-??? - 2007-??-??
|
||||
- Do not rotate onion key immediately after setting it for the first
|
||||
time.
|
||||
|
||||
o Minor bugfixes (other):
|
||||
- Fix an assert that could trigger if a controller quickly set then
|
||||
cleared EntryNodes. (Bug found by Udo van den Heuvel.)
|
||||
|
||||
|
||||
Changes in version 0.1.2.8-beta - 2007-02-26
|
||||
o Major bugfixes (crashes):
|
||||
|
@ -2251,7 +2251,7 @@ entry_nodes_should_be_added(void)
|
||||
|
||||
/** Add all nodes in EntryNodes that aren't currently guard nodes to the list
|
||||
* of guard nodes, at the front. */
|
||||
void
|
||||
static void
|
||||
entry_guards_prepend_from_config(void)
|
||||
{
|
||||
or_options_t *options = get_options();
|
||||
@ -2259,9 +2259,17 @@ entry_guards_prepend_from_config(void)
|
||||
smartlist_t *old_entry_guards_on_list = smartlist_create();
|
||||
smartlist_t *old_entry_guards_not_on_list = smartlist_create();
|
||||
smartlist_t *entry_fps = smartlist_create();
|
||||
|
||||
tor_assert(entry_guards);
|
||||
tor_assert(options->EntryNodes);
|
||||
|
||||
should_add_entry_nodes = 0;
|
||||
|
||||
if (!options->EntryNodes) {
|
||||
/* It's possible that a controller set EntryNodes, thus making
|
||||
* should_add_entry_nodes set, then cleared it again, all before the
|
||||
* call to choose_random_entry() that triggered us. If so, just return.
|
||||
*/
|
||||
return;
|
||||
}
|
||||
|
||||
log_info(LD_CIRC,"Adding configured EntryNodes '%s'.",
|
||||
options->EntryNodes);
|
||||
@ -2300,7 +2308,6 @@ entry_guards_prepend_from_config(void)
|
||||
smartlist_add_all(entry_guards, old_entry_guards_not_on_list);
|
||||
}
|
||||
|
||||
should_add_entry_nodes = 0;
|
||||
smartlist_free(entry_routers);
|
||||
smartlist_free(entry_fps);
|
||||
smartlist_free(old_entry_guards_on_list);
|
||||
|
@ -1980,7 +1980,6 @@ void entry_guards_compute_status(void);
|
||||
int entry_guard_register_connect_status(const char *digest, int succeeded,
|
||||
time_t now);
|
||||
void entry_nodes_should_be_added(void);
|
||||
void entry_guards_prepend_from_config(void);
|
||||
void entry_guards_update_state(or_state_t *state);
|
||||
int entry_guards_parse_state(or_state_t *state, int set, char **msg);
|
||||
int getinfo_helper_entry_guards(control_connection_t *conn,
|
||||
|
Loading…
Reference in New Issue
Block a user