mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Move code into notify_after_networkstatus_changes().
The purpose of having this function was to inform other code that the consensus has changed, so it should go there.
This commit is contained in:
parent
93ccb3294b
commit
5c5fb0fcca
@ -1670,7 +1670,34 @@ notify_before_networkstatus_changes(const networkstatus_t *old_c,
|
|||||||
static void
|
static void
|
||||||
notify_after_networkstatus_changes(void)
|
notify_after_networkstatus_changes(void)
|
||||||
{
|
{
|
||||||
|
const networkstatus_t *c = networkstatus_get_latest_consensus();
|
||||||
|
const or_options_t *options = get_options();
|
||||||
|
const time_t now = approx_time();
|
||||||
|
|
||||||
scheduler_notify_networkstatus_changed();
|
scheduler_notify_networkstatus_changed();
|
||||||
|
|
||||||
|
/* The "current" consensus has just been set and it is a usable flavor so
|
||||||
|
* the first thing we need to do is recalculate the voting schedule static
|
||||||
|
* object so we can use the timings in there needed by some subsystems
|
||||||
|
* such as hidden service and shared random. */
|
||||||
|
dirauth_sched_recalculate_timing(options, now);
|
||||||
|
reschedule_dirvote(options);
|
||||||
|
|
||||||
|
nodelist_set_consensus(c);
|
||||||
|
|
||||||
|
update_consensus_networkstatus_fetch_time(now);
|
||||||
|
|
||||||
|
/* Change the cell EWMA settings */
|
||||||
|
cmux_ewma_set_options(options, c);
|
||||||
|
|
||||||
|
/* XXXX this call might be unnecessary here: can changing the
|
||||||
|
* current consensus really alter our view of any OR's rate limits? */
|
||||||
|
connection_or_update_token_buckets(get_connection_array(), options);
|
||||||
|
|
||||||
|
circuit_build_times_new_consensus_params(
|
||||||
|
get_circuit_build_times_mutable(), c);
|
||||||
|
channelpadding_new_consensus_params(c);
|
||||||
|
circpad_new_consensus_params(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Copy all the ancillary information (like router download status and so on)
|
/** Copy all the ancillary information (like router download status and so on)
|
||||||
@ -2115,29 +2142,6 @@ networkstatus_set_current_consensus(const char *consensus,
|
|||||||
/* Notify that we just changed the consensus so the current global value
|
/* Notify that we just changed the consensus so the current global value
|
||||||
* can be looked at. */
|
* can be looked at. */
|
||||||
notify_after_networkstatus_changes();
|
notify_after_networkstatus_changes();
|
||||||
|
|
||||||
/* The "current" consensus has just been set and it is a usable flavor so
|
|
||||||
* the first thing we need to do is recalculate the voting schedule static
|
|
||||||
* object so we can use the timings in there needed by some subsystems
|
|
||||||
* such as hidden service and shared random. */
|
|
||||||
dirauth_sched_recalculate_timing(options, now);
|
|
||||||
reschedule_dirvote(options);
|
|
||||||
|
|
||||||
nodelist_set_consensus(c);
|
|
||||||
|
|
||||||
update_consensus_networkstatus_fetch_time(now);
|
|
||||||
|
|
||||||
/* Change the cell EWMA settings */
|
|
||||||
cmux_ewma_set_options(options, c);
|
|
||||||
|
|
||||||
/* XXXX this call might be unnecessary here: can changing the
|
|
||||||
* current consensus really alter our view of any OR's rate limits? */
|
|
||||||
connection_or_update_token_buckets(get_connection_array(), options);
|
|
||||||
|
|
||||||
circuit_build_times_new_consensus_params(
|
|
||||||
get_circuit_build_times_mutable(), c);
|
|
||||||
channelpadding_new_consensus_params(c);
|
|
||||||
circpad_new_consensus_params(c);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reset the failure count only if this consensus is actually valid. */
|
/* Reset the failure count only if this consensus is actually valid. */
|
||||||
|
Loading…
Reference in New Issue
Block a user