aboutsummaryrefslogtreecommitdiff
path: root/src/or/routerlist.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2010-01-02 13:13:30 -0500
committerRoger Dingledine <arma@torproject.org>2010-01-02 13:13:30 -0500
commit8cba62cc2afc661f75b519f0b4ddf7c8892f15a0 (patch)
tree2aff6a8917b4bd53a7aabf241437bcf70d675e54 /src/or/routerlist.c
parent485fa5c425e971cbd20de2b7e6e7447b5acf7f7c (diff)
downloadtor-8cba62cc2afc661f75b519f0b4ddf7c8892f15a0.tar.gz
tor-8cba62cc2afc661f75b519f0b4ddf7c8892f15a0.zip
don't div by 0 during path selection
Diffstat (limited to 'src/or/routerlist.c')
-rw-r--r--src/or/routerlist.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 029bd9a0c1..72b890b9fd 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -1698,12 +1698,12 @@ smartlist_choose_by_bandwidth(smartlist_t *sl, bandwidth_weight_rule_t rule,
* For detailed derivation of this formula, see
* http://archives.seul.org/or/dev/Jul-2007/msg00056.html
*/
- if (rule == WEIGHT_FOR_EXIT)
+ if (rule == WEIGHT_FOR_EXIT || !total_exit_bw)
exit_weight = 1.0;
else
exit_weight = 1.0 - all_bw/(3.0*exit_bw);
- if (rule == WEIGHT_FOR_GUARD)
+ if (rule == WEIGHT_FOR_GUARD || !total_guard_bw)
guard_weight = 1.0;
else
guard_weight = 1.0 - all_bw/(3.0*guard_bw);