summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunixninja92 <charlesvt@gmail.com>2013-09-25 01:45:00 +0200
committerNick Mathewson <nickm@torproject.org>2014-03-05 14:31:13 -0500
commit5c310a4fa2c13a52dc3fd39368788c3e75be6cb0 (patch)
treeb82ab69b88d775c41549f530c2c635ef518d12e9
parent52fbb9f623505a29975bea971478fc1e65591575 (diff)
downloadtor-5c310a4fa2c13a52dc3fd39368788c3e75be6cb0.tar.gz
tor-5c310a4fa2c13a52dc3fd39368788c3e75be6cb0.zip
Added max value to PredictedCircsRelevanceTime.
-rw-r--r--src/or/config.c12
-rw-r--r--src/or/or.h4
2 files changed, 14 insertions, 2 deletions
diff --git a/src/or/config.c b/src/or/config.c
index 460bf3ec41..11320746a2 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 5ca63e605b..0df34cd825 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