/** 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();
if (network_init()<0) {
log_fn(LOG_ERR,"Error initializing network; exiting.");
- return 1;
+ return -1;
}
atexit(exit_function);
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;
}