diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-11-15 13:16:58 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-11-26 16:32:40 -0500 |
commit | 3743f7969587079a2f2bb03d0b7e5038557fd64a (patch) | |
tree | af8e96b1be0384be223e96167065e76e96922727 /src/app/config/config.c | |
parent | 53ccdb6945f0d4a9b27a9939211a3c9125ca4427 (diff) | |
download | tor-3743f7969587079a2f2bb03d0b7e5038557fd64a.tar.gz tor-3743f7969587079a2f2bb03d0b7e5038557fd64a.zip |
Add options to control dormant-client feature.
The DormantClientTimeout option controls how long Tor will wait before
going dormant. It also provides a way to disable the feature by setting
DormantClientTimeout to e.g. "50 years".
The DormantTimeoutDisabledByIdleStreams option controls whether open but
inactive streams count as "client activity". To implement it, I had to
make it so that reading or writing on a client stream *always* counts as
activity.
Closes ticket 28429.
Diffstat (limited to 'src/app/config/config.c')
-rw-r--r-- | src/app/config/config.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/app/config/config.c b/src/app/config/config.c index 8aa0c1f4bd..90eae50fdd 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -389,6 +389,8 @@ static config_var_t option_vars_[] = { OBSOLETE("DynamicDHGroups"), VPORT(DNSPort), OBSOLETE("DNSListenAddress"), + V(DormantClientTimeout, INTERVAL, "24 hours"), + V(DormantTimeoutDisabledByIdleStreams, BOOL, "1"), /* DoS circuit creation options. */ V(DoSCircuitCreationEnabled, AUTOBOOL, "auto"), V(DoSCircuitCreationMinConnections, UINT, "0"), @@ -3836,6 +3838,10 @@ options_validate(or_options_t *old_options, or_options_t *options, "default."); } + if (options->DormantClientTimeout < 10*60 && !options->TestingTorNetwork) { + REJECT("DormantClientTimeout is too low. It must be at least 10 minutes."); + } + if (options->PathBiasNoticeRate > 1.0) { tor_asprintf(msg, "PathBiasNoticeRate is too high. " |