From: Nick Mathewson Date: Sun, 28 Oct 2007 23:44:57 +0000 (+0000) Subject: r16248@catbus: nickm | 2007-10-28 19:42:14 -0400 X-Git-Tag: tor-0.2.0.10-alpha~103 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=30e73f3a5e7e9e069e15425d1d2d8171b91b9a3d;p=thirdparty%2Ftor.git r16248@catbus: nickm | 2007-10-28 19:42:14 -0400 Do not count a server as having any WFU until we have known about it for 18 hours (weighted). svn:r12261 --- diff --git a/ChangeLog b/ChangeLog index dfad33eb0b..588de120b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,8 @@ Changes in version 0.2.0.10-alpha - 2007-1?-?? - Directory authorities now decide whether routers are stable enough to be guards based not on their MTBF or their uptime, but on their fractional uptime: the fraction of the time that they are online. + (No router counts as having uptime until we've known about it for + at least 24 hours.) - Clients new hold circuitless TLS connections open for 1.5 times MaxCircuitDirtiness, since it is likely that they'll need to build a circuit over them within that timeframe. Previously, they held them diff --git a/src/or/rephist.c b/src/or/rephist.c index 19377369d8..98d02d90d8 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -384,6 +384,9 @@ get_stability(or_history_t *hist, time_t when) return total / total_weights; } +/* Until we've known about you for this long, you simply can't be up. */ +#define MIN_WEIGHTED_TIME_TO_BE_UP (18*60*60) + /** Helper: Return the weighted percent-of-time-online of the router with * history hist. */ static double @@ -399,6 +402,8 @@ 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 < MIN_WEIGHTED_TIME_TO_BE_UP) + return 0.0; return ((double) up) / total; }