X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Ftincd.c;h=c4e8fad3746cd5d11a430a245b41e2a72563a788;hp=746fff41129ba6c148b9ddd4f8f7b2fbfdcd8212;hb=a39a9506cd041a7092a98498b362eaacfd2f33c3;hpb=67df7fb7e1c9eefe4bbc920fdc68b595ef28abd9 diff --git a/src/tincd.c b/src/tincd.c index 746fff41..c4e8fad3 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -392,6 +392,14 @@ static void make_names(void) } } +static void free_names() { + if (identname) free(identname); + if (netname) free(netname); + if (pidfilename) free(pidfilename); + if (logfilename) free(logfilename); + if (confbase) free(confbase); +} + int main(int argc, char **argv) { program_name = argv[0]; @@ -498,11 +506,11 @@ int main2(int argc, char **argv) /* Shutdown properly. */ - close_network_connections(); - ifdebug(CONNECTIONS) dump_device_stats(); + close_network_connections(); + end: logger(LOG_NOTICE, _("Terminating")); @@ -510,20 +518,14 @@ end: remove_pid(pidfilename); #endif - if (identname) free(identname); - if (netname) free(netname); - if (pidfilename) free(pidfilename); - if (logfilename) free(logfilename); - if (myport) free(myport); - if (device) free(device); - if (iface) free(iface); - if (confbase) free(confbase); - EVP_cleanup(); ENGINE_cleanup(); CRYPTO_cleanup_all_ex_data(); ERR_remove_state(0); ERR_free_strings(); + + exit_configuration(&config_tree); + free_names(); return status; }