mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
When ReloadTorrcOnSIGHUP=1, do non-reload activities anyway
Previously, we skipped everything that got invoked from options_init_from_torrc. But some of the stuff in options_act_reversible and options_act is actually important, like reopening the logs. Now, a SIGHUP always makes the effects of an options_set() happen, even though the options haven't changed. Fix for bug 5095; bugfix on 0.2.1.9-alpha, which introduced __ReloadTorrcOnSIGHUP.
This commit is contained in:
parent
d9ceab5bc3
commit
b41dd8069f
4
changes/bug5095
Normal file
4
changes/bug5095
Normal file
@ -0,0 +1,4 @@
|
||||
o Minor bugfixes:
|
||||
- When we receive a SIGHUP and the controller-use __ReloadTorrcOnSIGHUP
|
||||
option is set to 0, perform other actions that SIGHUP usually causes
|
||||
(like reopening the logs). Fixes bug 5095; bugfix on 0.2.1.9-alpha.
|
@ -748,7 +748,7 @@ set_options(or_options_t *new_val, char **msg)
|
||||
}
|
||||
/* Issues a CONF_CHANGED event to notify controller of the change. If Tor is
|
||||
* just starting up then the old_options will be undefined. */
|
||||
if (old_options) {
|
||||
if (old_options && old_options != global_options) {
|
||||
elements = smartlist_new();
|
||||
for (i=0; options_format.vars[i].name; ++i) {
|
||||
const config_var_t *var = &options_format.vars[i];
|
||||
@ -774,6 +774,8 @@ set_options(or_options_t *new_val, char **msg)
|
||||
control_event_conf_changed(elements);
|
||||
smartlist_free(elements);
|
||||
}
|
||||
|
||||
if (old_options != global_options)
|
||||
config_free(&options_format, old_options);
|
||||
|
||||
return 0;
|
||||
|
@ -1773,8 +1773,16 @@ do_hup(void)
|
||||
}
|
||||
options = get_options(); /* they have changed now */
|
||||
} else {
|
||||
char *msg = NULL;
|
||||
log_notice(LD_GENERAL, "Not reloading config file: the controller told "
|
||||
"us not to.");
|
||||
/* Make stuff get rescanned, reloaded, etc. */
|
||||
if (set_options((or_options_t*)options, &msg) < 0) {
|
||||
if (!msg)
|
||||
msg = tor_strdup("Unknown error");
|
||||
log_warn(LD_GENERAL, "Unable to re-set previous options: %s", msg);
|
||||
tor_free(msg);
|
||||
}
|
||||
}
|
||||
if (authdir_mode_handles_descs(options, -1)) {
|
||||
/* reload the approved-routers file */
|
||||
|
Loading…
Reference in New Issue
Block a user