mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Add an option to start tor in dormant mode for the first time.
This commit is contained in:
+10
-1
@@ -1803,11 +1803,20 @@ The following options are useful only for clients (that is, if
|
||||
Does not affect servers or onion services. Must be at least 10 minutes.
|
||||
(Default: 24 hours)
|
||||
|
||||
[[DormantTimeoutDisabledByIdleStreams]] **DormantTimeoutDisabledByIdleStreams **0**|**1**::
|
||||
[[DormantTimeoutDisabledByIdleStreams]] **DormantTimeoutDisabledByIdleStreams** **0**|**1**::
|
||||
If true, then any open client stream (even one not reading or writing)
|
||||
counts as client activity for the purpose of DormantClientTimeout.
|
||||
If false, then only network activity counts. (Default: 1)
|
||||
|
||||
[[DormantOnFirstStartup]] **DormantOnFirstStartup** **0**|**1**::
|
||||
If true, then the first time Tor starts up with a fresh DataDirectory,
|
||||
it starts in dormant mode, and takes no actions until the user has made
|
||||
a request. (This mode is recommended if installing a Tor client for a
|
||||
user who might not actually use it.) If false, Tor bootstraps the first
|
||||
time it is started, whether it sees a user request or not.
|
||||
+
|
||||
After the first time Tor starts, it begins in dormant mode if it was
|
||||
dormant before, and not otherwise. (Default: 0)
|
||||
|
||||
SERVER OPTIONS
|
||||
--------------
|
||||
|
||||
@@ -392,6 +392,7 @@ static config_var_t option_vars_[] = {
|
||||
OBSOLETE("DNSListenAddress"),
|
||||
V(DormantClientTimeout, INTERVAL, "24 hours"),
|
||||
V(DormantTimeoutDisabledByIdleStreams, BOOL, "1"),
|
||||
V(DormantOnFirstStartup, BOOL, "0"),
|
||||
/* DoS circuit creation options. */
|
||||
V(DoSCircuitCreationEnabled, AUTOBOOL, "auto"),
|
||||
V(DoSCircuitCreationMinConnections, UINT, "0"),
|
||||
|
||||
@@ -1085,6 +1085,10 @@ struct or_options_t {
|
||||
* from becoming dormant.
|
||||
**/
|
||||
int DormantTimeoutDisabledByIdleStreams;
|
||||
|
||||
/** Boolean: true if Tor should be dormant the first time it starts with
|
||||
* a datadirectory; false otherwise. */
|
||||
int DormantOnFirstStartup;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -129,8 +129,14 @@ netstatus_load_from_state(const or_state_t *state, time_t now)
|
||||
{
|
||||
time_t last_activity;
|
||||
if (state->Dormant == -1) { // Initial setup.
|
||||
last_activity = now;
|
||||
participating_on_network = true;
|
||||
if (get_options()->DormantOnFirstStartup) {
|
||||
last_activity = 0;
|
||||
participating_on_network = false;
|
||||
} else {
|
||||
// Start up as active, treat activity as happening now.
|
||||
last_activity = now;
|
||||
participating_on_network = true;
|
||||
}
|
||||
} else if (state->Dormant) {
|
||||
last_activity = 0;
|
||||
participating_on_network = false;
|
||||
|
||||
Reference in New Issue
Block a user