mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Add an option to disable signal handler installation.
Closes ticket 24588.
This commit is contained in:
parent
fdd5734875
commit
20f802ea3c
5
changes/ticket24588
Normal file
5
changes/ticket24588
Normal file
@ -0,0 +1,5 @@
|
||||
o Minor features (embedding, mobile):
|
||||
- Applications that want to embed Tor can now tell Tor not to register
|
||||
any of its own POSIX signal handlers, using the __DisableSignalHandlers
|
||||
option. This option is not meant for general use. Closes ticket 24588.
|
||||
|
@ -564,6 +564,7 @@ static config_var_t option_vars_[] = {
|
||||
VAR("__ReloadTorrcOnSIGHUP", BOOL, ReloadTorrcOnSIGHUP, "1"),
|
||||
VAR("__AllDirActionsPrivate", BOOL, AllDirActionsPrivate, "0"),
|
||||
VAR("__DisablePredictedCircuits",BOOL,DisablePredictedCircuits, "0"),
|
||||
VAR("__DisableSignalHandlers", BOOL, DisableSignalHandlers, "0"),
|
||||
VAR("__LeaveStreamsUnattached",BOOL, LeaveStreamsUnattached, "0"),
|
||||
VAR("__HashedControlSessionPassword", LINELIST, HashedControlSessionPassword,
|
||||
NULL),
|
||||
@ -4652,6 +4653,12 @@ options_transition_allowed(const or_options_t *old,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (old->DisableSignalHandlers != new_val->DisableSignalHandlers) {
|
||||
*msg = tor_strdup("While Tor is running, changing DisableSignalHandlers "
|
||||
"is not allowed.");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (strcmp(old->DataDirectory,new_val->DataDirectory)!=0) {
|
||||
tor_asprintf(msg,
|
||||
"While Tor is running, changing DataDirectory "
|
||||
|
@ -3057,8 +3057,10 @@ void
|
||||
handle_signals(void)
|
||||
{
|
||||
int i;
|
||||
const int enabled = !get_options()->DisableSignalHandlers;
|
||||
|
||||
for (i = 0; signal_handlers[i].signal_value >= 0; ++i) {
|
||||
if (signal_handlers[i].try_to_register) {
|
||||
if (enabled && signal_handlers[i].try_to_register) {
|
||||
signal_handlers[i].signal_event =
|
||||
tor_evsignal_new(tor_libevent_get_base(),
|
||||
signal_handlers[i].signal_value,
|
||||
|
@ -4651,6 +4651,11 @@ typedef struct {
|
||||
|
||||
/** List of files that were opened by %include in torrc and torrc-defaults */
|
||||
smartlist_t *FilesOpenedByIncludes;
|
||||
|
||||
/** If true, Tor shouldn't install any posix signal handlers, since it is
|
||||
* running embedded inside another process.
|
||||
*/
|
||||
int DisableSignalHandlers;
|
||||
} or_options_t;
|
||||
|
||||
#define LOG_PROTOCOL_WARN (get_protocol_warning_severity_level())
|
||||
|
Loading…
Reference in New Issue
Block a user