diff options
author | Andrea Shepard <andrea@persephoneslair.org> | 2012-06-08 23:44:06 -0700 |
---|---|---|
committer | Andrea Shepard <andrea@persephoneslair.org> | 2012-06-08 23:44:06 -0700 |
commit | 4fb2a14faeb7505e51780fab2c610504edb2646b (patch) | |
tree | 64e3482090123e983243f9e8f555e1011f357615 /src/or/config.c | |
parent | 8be6058d8f31e578de2ba9783b2ccb5da5ab0d9e (diff) | |
download | tor-4fb2a14faeb7505e51780fab2c610504edb2646b.tar.gz tor-4fb2a14faeb7505e51780fab2c610504edb2646b.zip |
Warn if the user has set CircuitBuildTimeout stupidly low and turned off LearnCircuitBuildTimeout
Diffstat (limited to 'src/or/config.c')
-rw-r--r-- | src/or/config.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/or/config.c b/src/or/config.c index 090d96c155..93fcc194f1 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3320,6 +3320,13 @@ compute_publishserverdescriptor(or_options_t *options) * expose more information than we're comfortable with. */ #define MIN_HEARTBEAT_PERIOD (30*60) +/** Lowest recommended value for CircuitBuildTimeout; if it is set too low + * and LearnCircuitBuildTimeout is off, the failure rate for circuit + * construction may be very high. In that case, if it is set below this + * threshold emit a warning. + * */ +#define RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT (10) + /** Return 0 if every setting in <b>options</b> is reasonable, and a * permissible transition from <b>old_options</b>. Else return -1. * Should have no side effects, except for normalizing the contents of @@ -3716,6 +3723,15 @@ options_validate(or_options_t *old_options, or_options_t *options, options->LearnCircuitBuildTimeout = 0; } + if (!(options->LearnCircuitBuildTimeout) && + options->CircuitBuildTimeout < RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT) { + log_warn(LD_CONFIG, + "CircuitBuildTimeout is shorter (%d seconds) than recommended " + "(%d seconds), and LearnCircuitBuildTimeout is disabled.", + options->CircuitBuildTimeout, + RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT ); + } + if (options->MaxCircuitDirtiness < MIN_MAX_CIRCUIT_DIRTINESS) { log_warn(LD_CONFIG, "MaxCircuitDirtiness option is too short; " "raising to %d seconds.", MIN_MAX_CIRCUIT_DIRTINESS); |