]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Bug 1357: Store the suspended timeout value to resume.
authorMike Perry <mikeperry-git@fscked.org>
Sat, 8 May 2010 17:41:00 +0000 (10:41 -0700)
committerMike Perry <mikeperry-git@fscked.org>
Mon, 10 May 2010 20:11:47 +0000 (13:11 -0700)
This prevents a spurious warning where we have a timeout just after
deciding our network came back online.

src/or/circuitbuild.c
src/or/or.h

index 0840e304f1489d86cc7a8af9ff15670fea548a7e..3600ce7c4d113d52ecff7890b6b4a9d339c56c0f 100644 (file)
@@ -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);
   }
 
index c8886cff1e2e6372efbc75e89a41c8bd0a05df6f..f31847408e0a10f9b13921646717a8cc0f1d1305 100644 (file)
@@ -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 */