X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Ftincd.c;h=560609c1bedaaad7454114fe8de72ca183a4b4b6;hb=04d8a8e34e1fe7f33f1946863b36a24ee358175f;hp=dee38ef19ff8bf427c47aee0d790f1dc7003d206;hpb=0871c3095151bce6a4031a2662aa51b7193b855c;p=tinc diff --git a/src/tincd.c b/src/tincd.c index dee38ef1..560609c1 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -379,10 +379,7 @@ static BOOL WINAPI console_ctrl_handler(DWORD type) { #endif static void cleanup() { - if(config_tree) { - exit_configuration(&config_tree); - } - + splay_empty_tree(&config_tree); list_empty_list(&cmdline_conf); free_names(); } @@ -492,22 +489,18 @@ int main(int argc, char **argv) { unsetenv("LISTEN_PID"); #endif - init_configuration(&config_tree); - /* Slllluuuuuuurrrrp! */ - gettimeofday(&now, NULL); - srand(now.tv_sec + now.tv_usec); crypto_init(); - if(!read_server_config(config_tree)) { + if(!read_server_config(&config_tree)) { return 1; } if(debug_level == DEBUG_NOTHING) { int level = 0; - if(get_config_int(lookup_config(config_tree, "LogLevel"), &level)) { + if(get_config_int(lookup_config(&config_tree, "LogLevel"), &level)) { debug_level = level; } } @@ -551,6 +544,9 @@ int main2(int argc, char **argv) { #endif char *priority = NULL; + gettimeofday(&now, NULL); + srand(now.tv_sec + now.tv_usec); + if(!detach()) { return 1; } @@ -576,7 +572,7 @@ int main2(int argc, char **argv) { /* Change process priority */ - if(get_config_string(lookup_config(config_tree, "ProcessPriority"), &priority)) { + if(get_config_string(lookup_config(&config_tree, "ProcessPriority"), &priority)) { if(!strcasecmp(priority, "Normal")) { if(setpriority(NORMAL_PRIORITY_CLASS) != 0) { logger(DEBUG_ALWAYS, LOG_ERR, "System call `%s' failed: %s", "setpriority", strerror(errno));