diff --git a/changes/bug2470 b/changes/bug2470 new file mode 100644 index 0000000000..8ff97b7bca --- /dev/null +++ b/changes/bug2470 @@ -0,0 +1,5 @@ + o Major bugfixes: + - If relays set RelayBandwidthBurst but not RelayBandwidthRate, + Tor would ignore their RelayBandwidthBurst setting, + potentially using more bandwidth than expected. Bugfix on + 0.2.0.1-alpha. Reported by Paul Wouters. Fixes bug 2470. diff --git a/src/or/config.c b/src/or/config.c index 5aca2256ff..eae92b2408 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3345,6 +3345,11 @@ options_validate(or_options_t *old_options, or_options_t *options, "PerConnBWBurst", msg) < 0) return -1; + if (options->RelayBandwidthRate && !options->RelayBandwidthBurst) + options->RelayBandwidthBurst = options->RelayBandwidthRate; + if (options->RelayBandwidthBurst && !options->RelayBandwidthRate) + options->RelayBandwidthRate = options->RelayBandwidthBurst; + if (server_mode(options)) { if (options->BandwidthRate < ROUTER_REQUIRED_MIN_BANDWIDTH) { tor_asprintf(msg, @@ -3373,9 +3378,6 @@ options_validate(or_options_t *old_options, or_options_t *options, } } - if (options->RelayBandwidthRate && !options->RelayBandwidthBurst) - options->RelayBandwidthBurst = options->RelayBandwidthRate; - if (options->RelayBandwidthRate > options->RelayBandwidthBurst) REJECT("RelayBandwidthBurst must be at least equal " "to RelayBandwidthRate.");