diff --git a/changes/bug28612 b/changes/bug28612 new file mode 100644 index 0000000000..559f254234 --- /dev/null +++ b/changes/bug28612 @@ -0,0 +1,4 @@ + o Minor bugfixes (windows services): + - Make Tor start correctly as an NT service again: previously it + was broken by refactoring. Fixes bug 28612; bugfix on 0.3.5.3-alpha. + diff --git a/src/app/main/main.c b/src/app/main/main.c index ae87add67d..a2b7c08456 100644 --- a/src/app/main/main.c +++ b/src/app/main/main.c @@ -1269,7 +1269,7 @@ sandbox_init_filter(void) return cfg; } -static int +int run_tor_main_loop(void) { handle_signals(); diff --git a/src/app/main/main.h b/src/app/main/main.h index b64f2ef417..23a436703e 100644 --- a/src/app/main/main.h +++ b/src/app/main/main.h @@ -26,4 +26,6 @@ void tor_free_all(int postfork); int tor_init(int argc, char **argv); +int run_tor_main_loop(void); + #endif /* !defined(TOR_MAIN_H) */ diff --git a/src/app/main/ntmain.c b/src/app/main/ntmain.c index 800720a0b4..8d2135a587 100644 --- a/src/app/main/ntmain.c +++ b/src/app/main/ntmain.c @@ -298,7 +298,7 @@ nt_service_body(int argc, char **argv) service_status.dwCurrentState = SERVICE_RUNNING; service_fns.SetServiceStatus_fn(hStatus, &service_status); set_main_thread(); - do_main_loop(); + run_tor_main_loop(); tor_cleanup(); } @@ -326,7 +326,7 @@ nt_service_main(void) return; switch (get_options()->command) { case CMD_RUN_TOR: - do_main_loop(); + run_tor_main_loop(); break; case CMD_LIST_FINGERPRINT: case CMD_HASH_PASSWORD: