mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Fix another crash-on-no-threadpool bug.
This one happens if for some reason you start with DirPort enabled but server mode turned off entirely. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
This commit is contained in:
parent
db6902c235
commit
386f8016b7
3 changed files with 14 additions and 2 deletions
4
changes/bug23693.1
Normal file
4
changes/bug23693.1
Normal file
|
@ -0,0 +1,4 @@
|
|||
o Minor bugfixes (relay, crash):
|
||||
- Avoid a crash when running with DirPort set but ORPort tuned off.
|
||||
Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
|
||||
|
|
@ -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)
|
||||
|
|
|
@ -2487,7 +2487,7 @@ do_main_loop(void)
|
|||
now = time(NULL);
|
||||
directory_info_has_arrived(now, 1, 0);
|
||||
|
||||
if (server_mode(get_options())) {
|
||||
if (server_mode(get_options()) || dir_server_mode(get_options())) {
|
||||
/* launch cpuworkers. Need to do this *after* we've read the onion key. */
|
||||
cpu_init();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue