mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Merge branch 'maint-0.4.0'
This commit is contained in:
commit
574c207670
7
changes/ticket29357
Normal file
7
changes/ticket29357
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
o Minor features (dormant mode):
|
||||||
|
- Add a DormantCanceledByStartup option to tell Tor that it should
|
||||||
|
treat a startup event as cancelling any previous dormant state.
|
||||||
|
Integrators should use this option with caution: it should
|
||||||
|
only be used if Tor is being started because of something that the
|
||||||
|
user did, and not if Tor is being automatically started in the
|
||||||
|
background. Closes ticket 29357.
|
@ -1850,6 +1850,21 @@ The following options are useful only for clients (that is, if
|
|||||||
After the first time Tor starts, it begins in dormant mode if it was
|
After the first time Tor starts, it begins in dormant mode if it was
|
||||||
dormant before, and not otherwise. (Default: 0)
|
dormant before, and not otherwise. (Default: 0)
|
||||||
|
|
||||||
|
[[DormantCanceledByStartup]] **DormantCanceledByStartup** **0**|**1**::
|
||||||
|
By default, Tor starts in active mode if it was active the last time
|
||||||
|
it was shut down, and in dormant mode if it was dormant. But if
|
||||||
|
this option is true, Tor treats every startup event as user
|
||||||
|
activity, and Tor will never start in Dormant mode, even if it has
|
||||||
|
been unused for a long time on previous runs. (Default: 0)
|
||||||
|
+
|
||||||
|
Note: Packagers and application developers should change the value of
|
||||||
|
this option only with great caution: it has the potential to
|
||||||
|
create spurious traffic on the network. This option should only
|
||||||
|
be used if Tor is started by an affirmative user activity (like
|
||||||
|
clicking on an applcation or running a command), and not if Tor
|
||||||
|
is launched for some other reason (for example, by a startup
|
||||||
|
process, or by an application that launches itself on every login.)
|
||||||
|
|
||||||
SERVER OPTIONS
|
SERVER OPTIONS
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
|
@ -398,6 +398,7 @@ static config_var_t option_vars_[] = {
|
|||||||
V(DormantClientTimeout, INTERVAL, "24 hours"),
|
V(DormantClientTimeout, INTERVAL, "24 hours"),
|
||||||
V(DormantTimeoutDisabledByIdleStreams, BOOL, "1"),
|
V(DormantTimeoutDisabledByIdleStreams, BOOL, "1"),
|
||||||
V(DormantOnFirstStartup, BOOL, "0"),
|
V(DormantOnFirstStartup, BOOL, "0"),
|
||||||
|
V(DormantCanceledByStartup, BOOL, "0"),
|
||||||
/* DoS circuit creation options. */
|
/* DoS circuit creation options. */
|
||||||
V(DoSCircuitCreationEnabled, AUTOBOOL, "auto"),
|
V(DoSCircuitCreationEnabled, AUTOBOOL, "auto"),
|
||||||
V(DoSCircuitCreationMinConnections, UINT, "0"),
|
V(DoSCircuitCreationMinConnections, UINT, "0"),
|
||||||
|
@ -1092,6 +1092,11 @@ struct or_options_t {
|
|||||||
/** Boolean: true if Tor should be dormant the first time it starts with
|
/** Boolean: true if Tor should be dormant the first time it starts with
|
||||||
* a datadirectory; false otherwise. */
|
* a datadirectory; false otherwise. */
|
||||||
int DormantOnFirstStartup;
|
int DormantOnFirstStartup;
|
||||||
|
/**
|
||||||
|
* Boolean: true if Tor should treat every startup event as cancelling
|
||||||
|
* a possible previous dormant state.
|
||||||
|
**/
|
||||||
|
int DormantCanceledByStartup;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -144,6 +144,10 @@ netstatus_load_from_state(const or_state_t *state, time_t now)
|
|||||||
last_activity = now - 60 * state->MinutesSinceUserActivity;
|
last_activity = now - 60 * state->MinutesSinceUserActivity;
|
||||||
participating_on_network = true;
|
participating_on_network = true;
|
||||||
}
|
}
|
||||||
|
if (get_options()->DormantCanceledByStartup) {
|
||||||
|
last_activity = now;
|
||||||
|
participating_on_network = true;
|
||||||
|
}
|
||||||
reset_user_activity(last_activity);
|
reset_user_activity(last_activity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -317,6 +317,14 @@ test_mainloop_dormant_load_state(void *arg)
|
|||||||
tt_assert(is_participating_on_network());
|
tt_assert(is_participating_on_network());
|
||||||
tt_i64_op(get_last_user_activity_time(), OP_EQ, start - 123*60);
|
tt_i64_op(get_last_user_activity_time(), OP_EQ, start - 123*60);
|
||||||
|
|
||||||
|
// If we would start dormant, but DormantCanceledByStartup is set, then
|
||||||
|
// we start up non-dormant.
|
||||||
|
state->Dormant = 1;
|
||||||
|
get_options_mutable()->DormantCanceledByStartup = 1;
|
||||||
|
netstatus_load_from_state(state, start);
|
||||||
|
tt_assert(is_participating_on_network());
|
||||||
|
tt_i64_op(get_last_user_activity_time(), OP_EQ, start);
|
||||||
|
|
||||||
done:
|
done:
|
||||||
or_state_free(state);
|
or_state_free(state);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user