mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
Merge remote-tracking branch 'asn/bug23862_031' into maint-0.3.1
This commit is contained in:
commit
ae608408e9
5
changes/bug23682
Normal file
5
changes/bug23682
Normal file
@ -0,0 +1,5 @@
|
||||
o Minor bugfixes (entry guards):
|
||||
- Tor now updates its guard state when it reads a consensus regardless of
|
||||
whether it's missing descriptors. That makes tor use its primary guards
|
||||
to fetch descriptors in some edge cases where it would have used fallback
|
||||
directories in the past. Fixes bug 23862; bugfix on 0.3.0.1-alpha.
|
@ -2592,11 +2592,11 @@ handle_response_fetch_consensus(dir_connection_t *conn,
|
||||
/* If we launched other fetches for this consensus, cancel them. */
|
||||
connection_dir_close_consensus_fetches(conn, flavname);
|
||||
|
||||
/* launches router downloads as needed */
|
||||
/* update the list of routers and directory guards */
|
||||
routers_update_all_from_networkstatus(now, 3);
|
||||
update_microdescs_from_networkstatus(now);
|
||||
update_microdesc_downloads(now);
|
||||
directory_info_has_arrived(now, 0, 0);
|
||||
|
||||
if (authdir_mode_v3(get_options())) {
|
||||
sr_act_post_consensus(
|
||||
networkstatus_get_latest_consensus_by_flavor(FLAV_NS));
|
||||
|
@ -968,6 +968,15 @@ directory_info_has_arrived(time_t now, int from_cache, int suppress_logs)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
|
||||
/* if we have enough dir info, then update our guard status with
|
||||
* whatever we just learned. */
|
||||
int invalidate_circs = guards_update_all();
|
||||
|
||||
if (invalidate_circs) {
|
||||
circuit_mark_all_unused_circs();
|
||||
circuit_mark_all_dirty_circs_as_unusable();
|
||||
}
|
||||
|
||||
if (!router_have_minimum_dir_info()) {
|
||||
int quiet = suppress_logs || from_cache ||
|
||||
directory_too_idle_to_fetch_descriptors(options, now);
|
||||
@ -981,15 +990,6 @@ directory_info_has_arrived(time_t now, int from_cache, int suppress_logs)
|
||||
update_all_descriptor_downloads(now);
|
||||
}
|
||||
|
||||
/* if we have enough dir info, then update our guard status with
|
||||
* whatever we just learned. */
|
||||
int invalidate_circs = guards_update_all();
|
||||
|
||||
if (invalidate_circs) {
|
||||
circuit_mark_all_unused_circs();
|
||||
circuit_mark_all_dirty_circs_as_unusable();
|
||||
}
|
||||
|
||||
/* Don't even bother trying to get extrainfo until the rest of our
|
||||
* directory info is up-to-date */
|
||||
if (options->DownloadExtraInfo)
|
||||
|
Loading…
Reference in New Issue
Block a user