summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--src/or/rephist.c5
2 files changed, 7 insertions, 0 deletions
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 <b>hist</b>. */
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;
}