summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Perry <mikeperry-git@fscked.org>2009-10-07 12:49:13 -0700
committerMike Perry <mikeperry-git@fscked.org>2009-10-07 12:49:13 -0700
commitec05e64a68bf788a9cf7e448cef8bdf065fe505e (patch)
tree903c53e7e31c0d1550e3b2cc5f7be9fe594cdb6c
parentb918cd8f04c255af37b1eae7434577579f44f9bc (diff)
downloadtor-ec05e64a68bf788a9cf7e448cef8bdf065fe505e.tar.gz
tor-ec05e64a68bf788a9cf7e448cef8bdf065fe505e.zip
Tweak values for when to discard all of our history.
This seems to be happening to me a lot on a garbage DSL line. We may need to come up with 2 threshholds: a high short onehop count and a lower longer count.
-rw-r--r--src/or/circuitbuild.c8
-rw-r--r--src/or/or.h2
2 files changed, 4 insertions, 6 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 46b1b3ca74..0ff7f272f4 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -753,10 +753,8 @@ circuit_build_times_network_timeout(circuit_build_times_t *cbt,
if (cbt->liveness.network_last_live <= start_time &&
start_time <= (now - cbt->timeout_ms/1000.0)) {
cbt->liveness.nonlive_timeouts++;
- }
-
- /* Check for one-hop timeout */
- if (did_onehop) {
+ } else if (did_onehop) {
+ /* Count a one-hop timeout */
cbt->liveness.timeouts_after_firsthop[cbt->liveness.after_firsthop_idx]=1;
cbt->liveness.after_firsthop_idx++;
cbt->liveness.after_firsthop_idx %= RECENT_CIRCUITS;
@@ -823,7 +821,7 @@ circuit_build_times_network_check_changed(circuit_build_times_t *cbt)
timeout_count += cbt->liveness.timeouts_after_firsthop[i];
}
- /* If 75% of our recent circuits are timing out after the first hop,
+ /* If 80% of our recent circuits are timing out after the first hop,
* we need to re-estimate a new initial alpha and timeout. */
if (timeout_count < MAX_RECENT_TIMEOUT_COUNT) {
return 0;
diff --git a/src/or/or.h b/src/or/or.h
index 0162e31f01..b11cc827fd 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2927,7 +2927,7 @@ typedef uint32_t build_time_t;
* This tells us to abandon timeout history and set
* the timeout back to BUILD_TIMEOUT_INITIAL_VALUE.
*/
-#define MAX_RECENT_TIMEOUT_COUNT (lround(RECENT_CIRCUITS*0.75))
+#define MAX_RECENT_TIMEOUT_COUNT (lround(RECENT_CIRCUITS*0.8))
/** Information about the state of our local network connection */
typedef struct {