Browse Source

Break tor_main into startup/loop/shutdown portions, to make NT service refactoring possible.

svn:r1965
Nick Mathewson 21 years ago
parent
commit
125b351970
1 changed files with 13 additions and 3 deletions
  1. 13 3
      src/or/main.c

+ 13 - 3
src/or/main.c

@@ -870,7 +870,7 @@ void exit_function(void)
 
 /** Main entry point for the Tor command-line client.
  */
-int tor_main(int argc, char *argv[]) {
+int tor_init(int argc, char *argv[]) {
 
   /* give it somewhere to log to initially */
   add_temp_log();
@@ -878,7 +878,7 @@ int tor_main(int argc, char *argv[]) {
 
   if (network_init()<0) {
     log_fn(LOG_ERR,"Error initializing network; exiting.");
-    return 1;
+    return -1;
   }
   atexit(exit_function);
 
@@ -915,8 +915,18 @@ int tor_main(int argc, char *argv[]) {
 
   crypto_global_init();
   crypto_seed_rng();
-  do_main_loop();
+  return 0;
+}
+
+void tor_cleanup(void) {
   crypto_global_cleanup();
+}
+
+int tor_main(int argc, char *argv[]) {
+  if (tor_init(argc, argv)<0)
+    return -1;
+  do_main_loop();
+  tor_cleanup();
   return -1;
 }