summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@fscked.org>2009-09-16 17:14:01 -0700
committerMike Perry <mikeperry-git@fscked.org>2009-09-16 17:20:34 -0700
commite2c2fa7a1f763b1815adc13bdea46d4dbdba78c1 (patch)
tree0897a588bb7f0c2ed82df2ab4c9d256e89498072
parente4e0ce94f0cd6ad18b9158e99936faeee5b6e092 (diff)
downloadtor-e2c2fa7a1f763b1815adc13bdea46d4dbdba78c1.tar.gz
tor-e2c2fa7a1f763b1815adc13bdea46d4dbdba78c1.zip
Change liveness value to be a function of the timeout.
And also the number of recent circuits used to decide when the network changes.
-rw-r--r--src/or/circuitbuild.c5
-rw-r--r--src/or/or.h4
2 files changed, 5 insertions, 4 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index a87ad2e290..1cb1fd2144 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -628,13 +628,14 @@ circuit_build_times_network_is_live(circuit_build_times_t *cbt)
/**
* Returns true if the network showed some sign of liveness
- * in the past NETWORK_LIVE_INTERVAL.
+ * in the past NETWORK_LIVE_MULTIPLIER*cbt->timeout seconds.
*/
int
circuit_build_times_is_network_live(circuit_build_times_t *cbt)
{
time_t now = approx_time();
- if (now - cbt->network_last_live > NETWORK_LIVE_INTERVAL) {
+ if (now - cbt->network_last_live >
+ (cbt->timeout*NETWORK_LIVE_MULTIPLIER)) {
log_info(LD_CIRC, "Network is no longer live. Dead for %ld seconds.",
now - cbt->network_last_live);
return 0;
diff --git a/src/or/or.h b/src/or/or.h
index fb4ab8452f..98fa841065 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2885,8 +2885,8 @@ void entry_guards_free_all(void);
typedef uint32_t build_time_t;
#define BUILD_TIME_MAX ((build_time_t)(INT32_MAX))
-/** Have we received a cell in the last 90 seconds? */
-#define NETWORK_LIVE_INTERVAL 90
+/** Have we received a cell in the last N seconds? */
+#define NETWORK_LIVE_MULTIPLIER (RECENT_CIRCUITS/2.5)
/** Lowest allowable value for CircuitBuildTimeout */
#define BUILD_TIMEOUT_MIN_VALUE 3