mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +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. */
|
/* If we launched other fetches for this consensus, cancel them. */
|
||||||
connection_dir_close_consensus_fetches(conn, flavname);
|
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);
|
routers_update_all_from_networkstatus(now, 3);
|
||||||
update_microdescs_from_networkstatus(now);
|
update_microdescs_from_networkstatus(now);
|
||||||
update_microdesc_downloads(now);
|
|
||||||
directory_info_has_arrived(now, 0, 0);
|
directory_info_has_arrived(now, 0, 0);
|
||||||
|
|
||||||
if (authdir_mode_v3(get_options())) {
|
if (authdir_mode_v3(get_options())) {
|
||||||
sr_act_post_consensus(
|
sr_act_post_consensus(
|
||||||
networkstatus_get_latest_consensus_by_flavor(FLAV_NS));
|
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();
|
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()) {
|
if (!router_have_minimum_dir_info()) {
|
||||||
int quiet = suppress_logs || from_cache ||
|
int quiet = suppress_logs || from_cache ||
|
||||||
directory_too_idle_to_fetch_descriptors(options, now);
|
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);
|
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
|
/* Don't even bother trying to get extrainfo until the rest of our
|
||||||
* directory info is up-to-date */
|
* directory info is up-to-date */
|
||||||
if (options->DownloadExtraInfo)
|
if (options->DownloadExtraInfo)
|
||||||
|
Loading…
Reference in New Issue
Block a user