diff options
author | Mike Perry <mikeperry-git@fscked.org> | 2010-05-08 10:41:00 -0700 |
---|---|---|
committer | Mike Perry <mikeperry-git@fscked.org> | 2010-05-10 13:11:47 -0700 |
commit | 0a6191cf701617d51d30c468b5987b62ad75883c (patch) | |
tree | cbc8aa058a261eef06bd34eed8efd2f607c68c84 /src | |
parent | 728e946efd87d5cd0a9ff073eeeb7b4fe9c3c0db (diff) | |
download | tor-0a6191cf701617d51d30c468b5987b62ad75883c.tar.gz tor-0a6191cf701617d51d30c468b5987b62ad75883c.zip |
Bug 1357: Store the suspended timeout value to resume.
This prevents a spurious warning where we have a timeout just after
deciding our network came back online.
Diffstat (limited to 'src')
-rw-r--r-- | src/or/circuitbuild.c | 7 | ||||
-rw-r--r-- | src/or/or.h | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 0840e304f1..3600ce7c4d 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -922,17 +922,18 @@ circuit_build_times_network_check_live(circuit_build_times_t *cbt) "Temporarily raising timeout to %lds.", (long int)(now - cbt->liveness.network_last_live), tor_lround(circuit_build_times_get_initial_timeout()/1000)); + cbt->liveness.suspended_timeout = cbt->timeout_ms; cbt->timeout_ms = circuit_build_times_get_initial_timeout(); - cbt->liveness.net_suspended = 1; control_event_buildtimeout_set(cbt, BUILDTIMEOUT_SET_EVENT_SUSPENDED); } return 0; - } else if (cbt->liveness.net_suspended) { + } else if (cbt->liveness.suspended_timeout) { log_notice(LD_CIRC, "Network activity has resumed. " "Resuming circuit timeout calculations."); - cbt->liveness.net_suspended = 0; + cbt->timeout_ms = cbt->liveness.suspended_timeout; + cbt->liveness.suspended_timeout = 0; control_event_buildtimeout_set(cbt, BUILDTIMEOUT_SET_EVENT_RESUME); } diff --git a/src/or/or.h b/src/or/or.h index c8886cff1e..f31847408e 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3108,8 +3108,9 @@ typedef struct { int num_recent_circs; /** Index into circular array. */ int after_firsthop_idx; - /** The network is not live. Timeout gathering is suspended */ - int net_suspended; + /** Timeout gathering is suspended if non-zero. The old timeout value + * is stored here in that case. */ + build_time_t suspended_timeout; } network_liveness_t; /** Structure for circuit build times history */ |