mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 02:09:24 +01:00
Ensure that global buckets are updated on configuration change
This commit is contained in:
parent
a38fd9bc5b
commit
6be994fa71
@ -2219,6 +2219,12 @@ options_act(const or_options_t *old_options)
|
||||
options->PerConnBWBurst != old_options->PerConnBWBurst)
|
||||
connection_or_update_token_buckets(get_connection_array(), options);
|
||||
|
||||
if (options->BandwidthRate != old_options->BandwidthRate ||
|
||||
options->BandwidthBurst != old_options->BandwidthBurst ||
|
||||
options->BandwidthRate != old_options->BandwidthRate ||
|
||||
options->RelayBandwidthBurst != old_options->RelayBandwidthBurst)
|
||||
connection_bucket_adjust(options);
|
||||
|
||||
if (options->MainloopStats != old_options->MainloopStats) {
|
||||
reset_main_loop_counters();
|
||||
}
|
||||
|
@ -3104,7 +3104,8 @@ connection_consider_empty_write_buckets(connection_t *conn)
|
||||
connection_stop_writing(conn);
|
||||
}
|
||||
|
||||
/** Initialize the global read bucket to options-\>BandwidthBurst. */
|
||||
/** Initialize the global buckets to the values configured in the
|
||||
* options */
|
||||
void
|
||||
connection_bucket_init(void)
|
||||
{
|
||||
@ -3127,6 +3128,24 @@ connection_bucket_init(void)
|
||||
}
|
||||
}
|
||||
|
||||
/** Update the global connection bucket settings to a new value. */
|
||||
void
|
||||
connection_bucket_adjust(const or_options_t *options)
|
||||
{
|
||||
token_bucket_adjust(&global_bucket,
|
||||
(int32_t)options->BandwidthRate,
|
||||
(int32_t)options->BandwidthBurst);
|
||||
if (options->RelayBandwidthRate) {
|
||||
token_bucket_adjust(&global_relayed_bucket,
|
||||
(int32_t)options->RelayBandwidthRate,
|
||||
(int32_t)options->RelayBandwidthBurst);
|
||||
} else {
|
||||
token_bucket_adjust(&global_relayed_bucket,
|
||||
(int32_t)options->BandwidthRate,
|
||||
(int32_t)options->BandwidthBurst);
|
||||
}
|
||||
}
|
||||
|
||||
/** Time has passed; increment buckets appropriately. */
|
||||
void
|
||||
connection_bucket_refill(time_t now, uint32_t now_ts)
|
||||
|
@ -122,6 +122,7 @@ void connection_mark_all_noncontrol_connections(void);
|
||||
ssize_t connection_bucket_write_limit(connection_t *conn, time_t now);
|
||||
int global_write_bucket_low(connection_t *conn, size_t attempt, int priority);
|
||||
void connection_bucket_init(void);
|
||||
void connection_bucket_adjust(const or_options_t *options);
|
||||
void connection_bucket_refill(time_t now,
|
||||
uint32_t now_ts);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user