mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
If there's a never-before-connected-to guard node in our list,
never choose any guards past it. This way we don't expand our guard list unless we need to. [Bugfix in 0.1.2.x] I'm not sure if this will solve all our problems, but it is at least something. svn:r10730
This commit is contained in:
parent
5c1daed3ad
commit
99bfb1bebe
@ -50,6 +50,11 @@ Changes in version 0.2.0.3-alpha - 2007-??-??
|
|||||||
- Stop under-counting the number of authorities that recommend each
|
- Stop under-counting the number of authorities that recommend each
|
||||||
version. [Bugfix on 0.1.2.x]
|
version. [Bugfix on 0.1.2.x]
|
||||||
|
|
||||||
|
o Minor bugfixes (guard nodes):
|
||||||
|
- If there's a never-before-connected-to guard node in our list,
|
||||||
|
never choose any guards past it. This way we don't expand our
|
||||||
|
guard list unless we need to. [Bugfix in 0.1.2.x]
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.2.0.2-alpha - 2007-06-02
|
Changes in version 0.2.0.2-alpha - 2007-06-02
|
||||||
o Major bugfixes on 0.2.0.1-alpha:
|
o Major bugfixes on 0.2.0.1-alpha:
|
||||||
|
@ -2418,6 +2418,13 @@ choose_random_entry(cpath_build_state_t *state)
|
|||||||
r = entry_is_live(entry, need_uptime, need_capacity, 0);
|
r = entry_is_live(entry, need_uptime, need_capacity, 0);
|
||||||
if (r && !smartlist_isin(exit_family, r)) {
|
if (r && !smartlist_isin(exit_family, r)) {
|
||||||
smartlist_add(live_entry_guards, r);
|
smartlist_add(live_entry_guards, r);
|
||||||
|
if (!entry->made_contact) {
|
||||||
|
/* Always start with the first not-yet-contacted entry
|
||||||
|
* guard. Otherwise we might add several new ones, pick
|
||||||
|
* the second new one, and now we've expanded our entry
|
||||||
|
* guard list without needing to. */
|
||||||
|
goto choose_and_finish;
|
||||||
|
}
|
||||||
if (smartlist_len(live_entry_guards) >= options->NumEntryGuards)
|
if (smartlist_len(live_entry_guards) >= options->NumEntryGuards)
|
||||||
break; /* we have enough */
|
break; /* we have enough */
|
||||||
}
|
}
|
||||||
@ -2451,6 +2458,7 @@ choose_random_entry(cpath_build_state_t *state)
|
|||||||
/* live_entry_guards may be empty below. Oh well, we tried. */
|
/* live_entry_guards may be empty below. Oh well, we tried. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
choose_and_finish:
|
||||||
r = smartlist_choose(live_entry_guards);
|
r = smartlist_choose(live_entry_guards);
|
||||||
smartlist_free(live_entry_guards);
|
smartlist_free(live_entry_guards);
|
||||||
smartlist_free(exit_family);
|
smartlist_free(exit_family);
|
||||||
|
Loading…
Reference in New Issue
Block a user