[or-cvs] [tor/maint-0.2.2 06/10] refactor and recomment; no actual changes

arma at torproject.org arma at torproject.org
Thu Sep 30 04:09:28 UTC 2010


Author: Roger Dingledine <arma at torproject.org>
Date: Wed, 29 Sep 2010 18:01:22 -0400
Subject: refactor and recomment; no actual changes
Commit: 7f10707c42e69ef69395aecf7984d16107c78331

---
 src/or/circuitbuild.c |   19 ++++++++++++-------
 src/or/circuitbuild.h |    1 +
 src/or/circuituse.c   |    5 +++--
 src/or/or.h           |    5 +++--
 4 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 7a0a215..5dfabcc 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -149,6 +149,14 @@ circuit_build_times_min_circs_to_observe(void)
   return num;
 }
 
+/** Return true iff <b>cbt</b> has recorded enough build times that we
+ * want to start acting on the timeout it implies. */
+int
+circuit_build_times_enough_to_compute(circuit_build_times_t *cbt)
+{
+  return cbt->total_build_times >= circuit_build_times_min_circs_to_observe();
+}
+
 double
 circuit_build_times_quantile_cutoff(void)
 {
@@ -292,8 +300,8 @@ circuit_build_times_reset(circuit_build_times_t *cbt)
 /**
  * Initialize the buildtimes structure for first use.
  *
- * Sets the initial timeout value based to either the
- * config setting or BUILD_TIMEOUT_INITIAL_VALUE.
+ * Sets the initial timeout values based on either the config setting,
+ * the consensus param, or the default (CBT_DEFAULT_TIMEOUT_INITIAL_VALUE).
  */
 void
 circuit_build_times_init(circuit_build_times_t *cbt)
@@ -918,9 +926,7 @@ int
 circuit_build_times_needs_circuits(circuit_build_times_t *cbt)
 {
   /* Return true if < MIN_CIRCUITS_TO_OBSERVE */
-  if (cbt->total_build_times < circuit_build_times_min_circs_to_observe())
-    return 1;
-  return 0;
+  return !circuit_build_times_enough_to_compute(cbt);
 }
 
 /**
@@ -1205,9 +1211,8 @@ static int
 circuit_build_times_set_timeout_worker(circuit_build_times_t *cbt)
 {
   build_time_t max_time;
-  if (cbt->total_build_times < circuit_build_times_min_circs_to_observe()) {
+  if (!circuit_build_times_enough_to_compute(cbt))
     return 0;
-  }
 
   if (!circuit_build_times_update_alpha(cbt))
     return 0;
diff --git a/src/or/circuitbuild.h b/src/or/circuitbuild.h
index 7cc5c28..9d666ec 100644
--- a/src/or/circuitbuild.h
+++ b/src/or/circuitbuild.h
@@ -79,6 +79,7 @@ void bridges_retry_all(void);
 void entry_guards_free_all(void);
 
 extern circuit_build_times_t circ_times;
+int circuit_build_times_enough_to_compute(circuit_build_times_t *cbt);
 void circuit_build_times_update_state(circuit_build_times_t *cbt,
                                       or_state_t *state);
 int circuit_build_times_parse_state(circuit_build_times_t *cbt,
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index 6ecb925..66ee0c4 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -278,8 +278,9 @@ void
 circuit_expire_building(time_t now)
 {
   circuit_t *victim, *next_circ = global_circuitlist;
-  /* circ_times.timeout is BUILD_TIMEOUT_INITIAL_VALUE if we haven't
-   * decided on a customized one yet */
+  /* circ_times.timeout_ms and circ_times.close_ms are from
+   * circuit_build_times_get_initial_timeout() if we haven't computed
+   * custom timeouts yet */
   time_t general_cutoff = now - tor_lround(circ_times.timeout_ms/1000);
   time_t begindir_cutoff = now - tor_lround(circ_times.timeout_ms/2000);
   time_t fourhop_cutoff = now - tor_lround(4*circ_times.timeout_ms/3000);
diff --git a/src/or/or.h b/src/or/or.h
index dc46684..c90b039 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -2979,8 +2979,9 @@ typedef uint32_t build_time_t;
  * Maximum count of timeouts that finish the first hop in the past
  * RECENT_CIRCUITS before calculating a new timeout.
  *
- * This tells us to abandon timeout history and set
- * the timeout back to BUILD_TIMEOUT_INITIAL_VALUE.
+ * This tells us whether to abandon timeout history and set
+ * the timeout back to whatever circuit_build_times_get_initial_timeout()
+ * gives us.
  */
 #define CBT_DEFAULT_MAX_RECENT_TIMEOUT_COUNT (CBT_DEFAULT_RECENT_CIRCUITS*9/10)
 
-- 
1.7.1




More information about the tor-commits mailing list