Clip the MaxCircuitDirtiness config option to a minimum of 10

seconds. Warn the user if lower values are given in the
configuration. Bugfix on 0.1.0.1-rc. Patch by Sebastian.
Clip the CircuitBuildTimeout to a minimum of 30 seconds. Warn the
user if lower values are given in the configuration. Bugfix on
0.1.1.17-rc. Patch by Sebastian.


svn:r17657
This commit is contained in:
Roger Dingledine 2008-12-17 22:32:17 +00:00
parent 33e2053ebc
commit 048f2a179b
2 changed files with 29 additions and 2 deletions

View File

@ -57,6 +57,12 @@ Changes in version 0.2.1.9-alpha - 200?-??-??
than a noncanonical one for a given OR ID, always use the
canonical one. Bugfix on 0.2.0.12-alpha. Fixes bug 805.
Spotted by rovv.
- Clip the MaxCircuitDirtiness config option to a minimum of 10
seconds. Warn the user if lower values are given in the
configuration. Bugfix on 0.1.0.1-rc. Patch by Sebastian.
- Clip the CircuitBuildTimeout to a minimum of 30 seconds. Warn the
user if lower values are given in the configuration. Bugfix on
0.1.1.17-rc. Patch by Sebastian.
o Minor bugfixes (hidden services):
- Do not throw away existing introduction points on SIGHUP; bugfix on

View File

@ -2841,6 +2841,15 @@ compute_publishserverdescriptor(or_options_t *options)
/** Highest allowable value for RendPostPeriod. */
#define MAX_DIR_PERIOD (MIN_ONION_KEY_LIFETIME/2)
/** Lowest allowable value for CircuitBuildTimeout; values too low will
* increase network load because of failing connections being retried, and
* might prevent users from connecting to the network at all. */
#define MIN_CIRCUIT_BUILD_TIMEOUT 30
/** Lowest allowable value for MaxCircuitDirtiness; if this is too low, Tor
* will generate too many circuits and potentially overload the network. */
#define MIN_MAX_CIRCUIT_DIRTINESS 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
@ -3241,8 +3250,8 @@ options_validate(or_options_t *old_options, or_options_t *options,
}
if (options->RendPostPeriod < MIN_REND_POST_PERIOD) {
log(LOG_WARN,LD_CONFIG,"RendPostPeriod option must be at least %d seconds."
" Clipping.", MIN_REND_POST_PERIOD);
log(LOG_WARN,LD_CONFIG,"RendPostPeriod option is too short; "
"raising to %d seconds.", MIN_REND_POST_PERIOD);
options->RendPostPeriod = MIN_REND_POST_PERIOD;
}
@ -3252,6 +3261,18 @@ options_validate(or_options_t *old_options, or_options_t *options,
options->RendPostPeriod = MAX_DIR_PERIOD;
}
if (options->CircuitBuildTimeout < MIN_CIRCUIT_BUILD_TIMEOUT) {
log(LOG_WARN, LD_CONFIG, "CircuitBuildTimeout option is too short; "
"raising to %d seconds.", MIN_CIRCUIT_BUILD_TIMEOUT);
options->CircuitBuildTimeout = MIN_CIRCUIT_BUILD_TIMEOUT;
}
if (options->MaxCircuitDirtiness < MIN_MAX_CIRCUIT_DIRTINESS) {
log(LOG_WARN, LD_CONFIG, "MaxCircuitDirtiness option is too short; "
"raising to %d seconds.", MIN_MAX_CIRCUIT_DIRTINESS);
options->MaxCircuitDirtiness = MIN_MAX_CIRCUIT_DIRTINESS;
}
if (options->KeepalivePeriod < 1)
REJECT("KeepalivePeriod option must be positive.");