Make changes in server_mode() affect workers; fix a crash.

Without this fix, changes from client to bridge don't trigger
transition_affects_workers(), so we would never have actually
initialized the cpuworkers.

Fixes bug 23693.  Bugfix on 3bcdb26267 0.2.6.3-alpha, which
fixed bug 14901 in the general case, but not on the case where
public_server_mode() did not change.
This commit is contained in:
Nick Mathewson 2017-10-02 11:11:30 -04:00
parent 2c93be80d9
commit c50c98ba6a
2 changed files with 7 additions and 0 deletions

6
changes/bug23693 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes (relay, crash):
- Avoid a crash when transitioning from client mode to bridge mode.
Previously, we would launch the worker threads whenever our "public
server" mode changed, but not when our "server" mode changed.
Fixes bug 23693; bugfix on 0.2.6.3-alpha.

View File

@ -4453,6 +4453,7 @@ options_transition_affects_workers(const or_options_t *old_options,
new_options->ServerDNSSearchDomains ||
old_options->SafeLogging_ != new_options->SafeLogging_ ||
old_options->ClientOnly != new_options->ClientOnly ||
server_mode(old_options) != 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)