Bläddra i källkod

Change liveness value to be a function of the timeout.

And also the number of recent circuits used to decide
when the network changes.
Mike Perry 16 år sedan
förälder
incheckning
e2c2fa7a1f
2 ändrade filer med 5 tillägg och 4 borttagningar
  1. 3 2
      src/or/circuitbuild.c
  2. 2 2
      src/or/or.h

+ 3 - 2
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;

+ 2 - 2
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