|
@@ -1941,9 +1941,16 @@ options_act(const or_options_t *old_options)
|
|
|
if (transition_affects_workers) {
|
|
|
log_info(LD_GENERAL,
|
|
|
"Worker-related options changed. Rotating workers.");
|
|
|
+ const int server_mode_turned_on =
|
|
|
+ server_mode(options) && !server_mode(old_options);
|
|
|
+ const int dir_server_mode_turned_on =
|
|
|
+ dir_server_mode(options) && !dir_server_mode(old_options);
|
|
|
|
|
|
- if (server_mode(options) && !server_mode(old_options)) {
|
|
|
+ if (server_mode_turned_on || dir_server_mode_turned_on) {
|
|
|
cpu_init();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (server_mode_turned_on) {
|
|
|
ip_address_changed(0);
|
|
|
if (have_completed_a_circuit() || !any_predicted_circuits(time(NULL)))
|
|
|
inform_testing_reachability();
|
|
@@ -4494,6 +4501,7 @@ options_transition_affects_workers(const or_options_t *old_options,
|
|
|
old_options->SafeLogging_ != new_options->SafeLogging_ ||
|
|
|
old_options->ClientOnly != new_options->ClientOnly ||
|
|
|
server_mode(old_options) != server_mode(new_options) ||
|
|
|
+ dir_server_mode(old_options) != dir_server_mode(new_options) ||
|
|
|
public_server_mode(old_options) != public_server_mode(new_options) ||
|
|
|
!config_lines_eq(old_options->Logs, new_options->Logs) ||
|
|
|
old_options->LogMessageDomains != new_options->LogMessageDomains)
|