diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-07-30 10:14:12 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-07-30 10:14:12 -0400 |
commit | 4577bda7669885c077624f99657520b7b0f6f96b (patch) | |
tree | 08b6bea8313cddefcb2234358b5b5e2ea0266d20 /src | |
parent | 0f944e496a61b404077e183e7be93454d13422d3 (diff) | |
download | tor-4577bda7669885c077624f99657520b7b0f6f96b.tar tor-4577bda7669885c077624f99657520b7b0f6f96b.tar.gz |
Cleaner fix for get_effective_bw(rate|burst), with comment on why it is ok.
Diffstat (limited to 'src')
-rw-r--r-- | src/or/config.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/or/config.c b/src/or/config.c index fa986a6fc..603f1b606 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1227,12 +1227,14 @@ options_need_geoip_info(or_options_t *options, const char **reason_out) uint32_t get_effective_bwrate(or_options_t *options) { - uint32_t bw = (int)options->BandwidthRate; + uint64_t bw = options->BandwidthRate; if (bw > options->MaxAdvertisedBandwidth) - bw = (int)options->MaxAdvertisedBandwidth; + bw = options->MaxAdvertisedBandwidth; if (options->RelayBandwidthRate > 0 && bw > options->RelayBandwidthRate) - bw = (int)options->RelayBandwidthRate; - return bw; + bw = options->RelayBandwidthRate; + + /* ensure_bandwidth_cap() makes sure that this cast can't overflow. */ + return (uint32_t)bw; } /** Return the bandwidthburst that we are going to report to the authorities @@ -1240,10 +1242,11 @@ get_effective_bwrate(or_options_t *options) uint32_t get_effective_bwburst(or_options_t *options) { - uint32_t bw = (int)options->BandwidthBurst; + uint64_t bw = options->BandwidthBurst; if (options->RelayBandwidthBurst > 0 && bw > options->RelayBandwidthBurst) - bw = (int)options->RelayBandwidthBurst; - return bw; + bw = options->RelayBandwidthBurst; + /* ensure_bandwidth_cap() makes sure that this cast can't overflow. */ + return (uint32_t)bw; } /** Fetch the active option list, and take actions based on it. All of the |