o Minor features:
- Be more generous with how much bandwidth we'd use up (with
accounting enabled) before entering "soft hibernation".
- Previously, we'd hibernate once we'd used up 95% of our allotment.
- Now, we use up 95% of our allotment, AND make sure that we have
- no more than 500MB/3 hours of traffic remaining before we enter
- soft hibernation.
+ Previously, we'd hibernate once we'd used up 95% of our
+ allotment. Now, we use up 95% of our allotment, AND make sure
+ that we have no more than 500MB (or 3 hours of expected traffic,
+ whichever is lower) remaining before we enter soft hibernation.
o Minor bugfixes:
- For bandwidth accounting, calculate our expected bandwidth rate
update_expected_bandwidth(void)
{
uint64_t expected;
- uint64_t max_configured = (get_options()->BandwidthRate * 60);
+ or_options_t *options= get_options();
+ uint64_t max_configured = (options->RelayBandwidthRate > 0 ?
+ options->RelayBandwidthRate :
+ options->BandwidthRate) * 60;
#define MIN_TIME_FOR_MEASUREMENT (1800)
interval_start_time = state->AccountingIntervalStart;
expected_bandwidth_usage = state->AccountingExpectedUsage;
- /* Older versions of Tor (before 0.2.2.16-alpha) didn't generate these
+ /* Older versions of Tor (before 0.2.2.17-alpha or so) didn't generate these
* fields. If you switch back and forth, you might get an
* AccountingSoftLimitHitAt value from long before the most recent
* interval_start_time. If that's so, then ignore the softlimit-related
soft_limit_hit_at = now;
n_seconds_to_hit_soft_limit = n_seconds_active_in_interval;
n_bytes_at_soft_limit = MAX(n_bytes_read_in_interval,
- n_bytes_written_in_interval);
+ n_bytes_written_in_interval);
}
/* close listeners. leave control listener(s). */