Merge remote-tracking branch 'public/bug6304_v3' into maint-0.2.4

Conflicts:
	src/or/circuitbuild.c
	src/or/config.c
This commit is contained in:
Nick Mathewson 2013-03-20 10:31:28 -04:00
commit 5b0b51ca3f
3 changed files with 20 additions and 15 deletions

4
changes/bug6304 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- Behave correctly when the user disables LearnCircuitBuildTimeout
but doesn't tell us what they would like the timeout to be. Fixes
bug 6304; bugfix on 0.2.2.14-alpha.

View File

@ -417,19 +417,16 @@ circuit_build_times_get_initial_timeout(void)
* Check if we have LearnCircuitBuildTimeout, and if we don't, * Check if we have LearnCircuitBuildTimeout, and if we don't,
* always use CircuitBuildTimeout, no questions asked. * always use CircuitBuildTimeout, no questions asked.
*/ */
if (get_options()->LearnCircuitBuildTimeout) { if (!unit_tests && get_options()->CircuitBuildTimeout) {
if (!unit_tests && get_options()->CircuitBuildTimeout) { timeout = get_options()->CircuitBuildTimeout*1000;
timeout = get_options()->CircuitBuildTimeout*1000; if (get_options()->LearnCircuitBuildTimeout &&
if (timeout < circuit_build_times_min_timeout()) { timeout < circuit_build_times_min_timeout()) {
log_warn(LD_CIRC, "Config CircuitBuildTimeout too low. Setting to %ds", log_warn(LD_CIRC, "Config CircuitBuildTimeout too low. Setting to %ds",
circuit_build_times_min_timeout()/1000); circuit_build_times_min_timeout()/1000);
timeout = circuit_build_times_min_timeout(); timeout = circuit_build_times_min_timeout();
}
} else {
timeout = circuit_build_times_initial_timeout();
} }
} else { } else {
timeout = get_options()->CircuitBuildTimeout*1000; timeout = circuit_build_times_initial_timeout();
} }
return timeout; return timeout;

View File

@ -2723,15 +2723,19 @@ options_validate(or_options_t *old_options, or_options_t *options,
"http://freehaven.net/anonbib/#hs-attack06 for details."); "http://freehaven.net/anonbib/#hs-attack06 for details.");
} }
if (!(options->LearnCircuitBuildTimeout) && if (!options->LearnCircuitBuildTimeout && options->CircuitBuildTimeout &&
options->CircuitBuildTimeout < RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT) { options->CircuitBuildTimeout < RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT) {
log_warn(LD_CONFIG, log_warn(LD_CONFIG,
"CircuitBuildTimeout is shorter (%d seconds) than recommended " "CircuitBuildTimeout is shorter (%d seconds) than the recommended "
"(%d seconds), and LearnCircuitBuildTimeout is disabled. " "minimum (%d seconds), and LearnCircuitBuildTimeout is disabled. "
"If tor isn't working, raise this value or enable " "If tor isn't working, raise this value or enable "
"LearnCircuitBuildTimeout.", "LearnCircuitBuildTimeout.",
options->CircuitBuildTimeout, options->CircuitBuildTimeout,
RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT ); RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT );
} else if (!options->LearnCircuitBuildTimeout &&
!options->CircuitBuildTimeout) {
log_notice(LD_CONFIG, "You disabled LearnCircuitBuildTimeout, but didn't "
"a CircuitBuildTimeout. I'll pick a plausible default.");
} }
if (options->PathBiasNoticeRate > 1.0) { if (options->PathBiasNoticeRate > 1.0) {