[tor-commits] [tor/master] Added max value to PredictedCircsRelevanceTime.

nickm at torproject.org nickm at torproject.org
Wed Mar 5 19:36:50 UTC 2014


commit 5c310a4fa2c13a52dc3fd39368788c3e75be6cb0
Author: unixninja92 <charlesvt at gmail.com>
Date:   Wed Sep 25 01:45:00 2013 +0200

    Added max value to PredictedCircsRelevanceTime.
---
 src/or/config.c |   12 ++++++++++++
 src/or/or.h     |    4 ++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/or/config.c b/src/or/config.c
index 460bf3e..1132074 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -2385,6 +2385,11 @@ compute_publishserverdescriptor(or_options_t *options)
  * services can overload the directory system. */
 #define MIN_REND_POST_PERIOD (10*60)
 
+/** Higest allowable value for PredictedCircsRelevanceTime; if this is
+ * too high, our selection of exits will decrease for an extended
+ * period of time to an uncomfortable level .*/
+#define MAX_PREDICTED_CIRCS_RELEVANCE (24*60*60)
+
 /** Highest allowable value for RendPostPeriod. */
 #define MAX_DIR_PERIOD (MIN_ONION_KEY_LIFETIME/2)
 
@@ -2832,6 +2837,13 @@ options_validate(or_options_t *old_options, or_options_t *options,
     options->RendPostPeriod = MAX_DIR_PERIOD;
   }
 
+  if (options->PredictedCircsRelevanceTime > 
+      MAX_PREDICTED_CIRCS_RELEVANCE) {
+    log_warn(LD_CONFIG, "PredictedCircsRelevanceTime is too large; "
+             "clipping to %ds.", MAX_PREDICTED_CIRCS_RELEVANCE);
+    options->PredictedCircsRelevanceTime = MAX_PREDICTED_CIRCS_RELEVANCE;
+  }
+
   if (options->Tor2webMode && options->LearnCircuitBuildTimeout) {
     /* LearnCircuitBuildTimeout and Tor2webMode are incompatible in
      * two ways:
diff --git a/src/or/or.h b/src/or/or.h
index 5ca63e6..0df34cd 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3673,9 +3673,9 @@ typedef struct {
                          * a new one? */
   int MaxCircuitDirtiness; /**< Never use circs that were first used more than
                                 this interval ago. */
-  int PredictedCircsRelevanceTime; /** How long after we've seen a request for
+  int PredictedCircsRelevanceTime; /** How long after we've requested a connection for
                                     * a given port, do we want to continue
-                                    * to make connections to the same port?  */
+                                    * to pick exits that support that port?  */
   uint64_t BandwidthRate; /**< How much bandwidth, on average, are we willing
                            * to use in a second? */
   uint64_t BandwidthBurst; /**< How much bandwidth, at maximum, are we willing





More information about the tor-commits mailing list