|
@@ -1631,7 +1631,9 @@ networkstatus_set_current_consensus(const char *consensus,
|
|
|
if (r != 1 && dl_certs)
|
|
|
authority_certs_fetch_missing(c, now);
|
|
|
|
|
|
- if (flav == usable_consensus_flavor()) {
|
|
|
+ const int is_usable_flavor = flav == usable_consensus_flavor();
|
|
|
+
|
|
|
+ if (is_usable_flavor) {
|
|
|
notify_control_networkstatus_changed(current_consensus, c);
|
|
|
}
|
|
|
if (flav == FLAV_NS) {
|
|
@@ -1674,20 +1676,12 @@ networkstatus_set_current_consensus(const char *consensus,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- if (c->valid_after <= now && now <= c->valid_until) {
|
|
|
- download_status_reset(&consensus_dl_status[flav]);
|
|
|
- } else {
|
|
|
- if (!from_cache)
|
|
|
- download_status_failed(&consensus_dl_status[flav], 0);
|
|
|
- }
|
|
|
+ if (is_usable_flavor) {
|
|
|
+ nodelist_set_consensus(c);
|
|
|
|
|
|
- if (flav == usable_consensus_flavor()) {
|
|
|
|
|
|
update_consensus_networkstatus_fetch_time(now);
|
|
|
|
|
|
- nodelist_set_consensus(current_consensus);
|
|
|
-
|
|
|
dirvote_recalculate_timing(options, now);
|
|
|
routerstatus_list_update_named_server_map();
|
|
|
|
|
@@ -1711,6 +1705,14 @@ networkstatus_set_current_consensus(const char *consensus,
|
|
|
current_consensus);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ if (c->valid_after <= now && now <= c->valid_until) {
|
|
|
+ download_status_reset(&consensus_dl_status[flav]);
|
|
|
+ } else {
|
|
|
+ if (!from_cache)
|
|
|
+ download_status_failed(&consensus_dl_status[flav], 0);
|
|
|
+ }
|
|
|
+
|
|
|
if (directory_caches_dir_info(options)) {
|
|
|
dirserv_set_cached_consensus_networkstatus(consensus,
|
|
|
flavor,
|