aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-07-30 10:14:12 -0400
committerNick Mathewson <nickm@torproject.org>2009-07-30 10:14:12 -0400
commit4577bda7669885c077624f99657520b7b0f6f96b (patch)
tree08b6bea8313cddefcb2234358b5b5e2ea0266d20 /src
parent0f944e496a61b404077e183e7be93454d13422d3 (diff)
downloadtor-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.c17
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