Fix 0/0 calculation in get_weighted_fractional_uptime().

svn:r16994
This commit is contained in:
Nick Mathewson 2008-09-28 15:48:36 +00:00
parent ec56889013
commit 99755f374d
2 changed files with 10 additions and 0 deletions

View File

@ -66,6 +66,8 @@ Changes in version 0.2.1.6-alpha - 2008-09-xx
directory writes. Previously, we had only counted this when we
had met our limits precisely. Fixes bug 824. Patch from by rovv.
Bugfix on 0.2.0.x (??).
- Avoid a 0/0 calculation when calculating router uptime at directory
authorities. Bugfix on 0.2.0.8-alpha.
o Minor bugfixes (controller):
- Make DNS resolved events into "CLOSED", not "FAILED". Bugfix on

View File

@ -462,6 +462,14 @@ get_weighted_fractional_uptime(or_history_t *hist, time_t when)
} else if (hist->start_of_downtime) {
total += (when - hist->start_of_downtime);
}
if (!total) {
/* Avoid calling anybody's uptime infinity (which should be impossible if
* the code is working), or NaN (which can happen for any router we haven't
* observed up or down yet). */
return 0.0;
}
return ((double) up) / total;
}