mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Add new internal-use-only option for controllers to use to prevent SIGHUP from reloading the configuration. Fixes bug 856.
svn:r17567
This commit is contained in:
parent
9aa706e20c
commit
53d3f812bd
@ -19,6 +19,8 @@ Changes in version 0.2.1.9-alpha - 200?-??-??
|
||||
- When we realize that another process has modified our cached
|
||||
descriptors, print out a more useful error message rather than
|
||||
triggering an assertion. Fixes bug 885. Patch from Karsten.
|
||||
- Add an internal-use-only __ReloadTorrcOnSIGHUP option for controllers
|
||||
to prevent SIGHUP from reloading the configuration. Fixes bug 856.
|
||||
|
||||
o Minor bugfixes:
|
||||
- Resume using the correct "REASON=" stream when telling the
|
||||
|
@ -1650,6 +1650,16 @@ $Id$
|
||||
As HashedControlPassword, but is not saved to the torrc file by
|
||||
SAVECONF. Added in Tor 0.2.0.20-rc.
|
||||
|
||||
__ReloadTorrcOnSIGHUP
|
||||
|
||||
If this option is true (the default), we reload the torrc from disk
|
||||
every time we get a SIGHUP (from the controller or via a signal).
|
||||
Otherwise, we don't. This option exists so that controllers can keep
|
||||
their options from getting overwritten when a user sends Tor a HUP for
|
||||
some other reason (for example, to rotate the logs).
|
||||
|
||||
(Boolean. Default: "1")
|
||||
|
||||
5.5. Phases from the Bootstrap status event.
|
||||
|
||||
This section describes the various bootstrap phases currently reported
|
||||
|
@ -333,6 +333,7 @@ static config_var_t _option_vars[] = {
|
||||
VAR("VersioningAuthoritativeDirectory",BOOL,VersioningAuthoritativeDir, "0"),
|
||||
V(VirtualAddrNetwork, STRING, "127.192.0.0/10"),
|
||||
V(WarnPlaintextPorts, CSV, "23,109,110,143"),
|
||||
VAR("__ReloadTorrcOnSIGHUP", BOOL, ReloadTorrcOnSIGHUP, "1"),
|
||||
VAR("__AllDirActionsPrivate", BOOL, AllDirActionsPrivate, "0"),
|
||||
VAR("__DisablePredictedCircuits",BOOL,DisablePredictedCircuits, "0"),
|
||||
VAR("__LeaveStreamsUnattached",BOOL, LeaveStreamsUnattached, "0"),
|
||||
|
@ -1321,7 +1321,8 @@ do_hup(void)
|
||||
dmalloc_log_changed(0, 1, 0, 0);
|
||||
#endif
|
||||
|
||||
log_notice(LD_GENERAL,"Received reload signal (hup). Reloading config.");
|
||||
log_notice(LD_GENERAL,"Received reload signal (hup). Reloading config and "
|
||||
"resetting internal state.");
|
||||
if (accounting_is_enabled(options))
|
||||
accounting_record_bandwidth_usage(time(NULL), get_or_state());
|
||||
|
||||
@ -1329,13 +1330,18 @@ do_hup(void)
|
||||
routerlist_reset_warnings();
|
||||
addressmap_clear_transient();
|
||||
/* first, reload config variables, in case they've changed */
|
||||
/* no need to provide argc/v, they've been cached inside init_from_config */
|
||||
if (options_init_from_torrc(0, NULL) < 0) {
|
||||
log_err(LD_CONFIG,"Reading config failed--see warnings above. "
|
||||
"For usage, try -h.");
|
||||
return -1;
|
||||
if (options->ReloadTorrcOnSIGHUP) {
|
||||
/* no need to provide argc/v, they've been cached inside init_from_config */
|
||||
if (options_init_from_torrc(0, NULL) < 0) {
|
||||
log_err(LD_CONFIG,"Reading config failed--see warnings above. "
|
||||
"For usage, try -h.");
|
||||
return -1;
|
||||
}
|
||||
options = get_options(); /* they have changed now */
|
||||
} else {
|
||||
log_notice(LD_GENERAL, "Not reloading config file: the controller told "
|
||||
"us not to.");
|
||||
}
|
||||
options = get_options(); /* they have changed now */
|
||||
if (authdir_mode_handles_descs(options, -1)) {
|
||||
/* reload the approved-routers file */
|
||||
if (dirserv_load_fingerprint_file() < 0) {
|
||||
|
@ -2496,6 +2496,10 @@ typedef struct {
|
||||
/** Optionally, a file with GeoIP data. */
|
||||
char *GeoIPFile;
|
||||
|
||||
/** If true, SIGHUP should reload the torrc. Sometimes controllers want
|
||||
* to make this false. */
|
||||
int ReloadTorrcOnSIGHUP;
|
||||
|
||||
} or_options_t;
|
||||
|
||||
/** Persistent state for an onion router, as saved to disk. */
|
||||
|
Loading…
Reference in New Issue
Block a user