X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fnet.c;h=baf576d5d854c77f9a2af1b0411bf0aa834dca18;hb=41583d5dcfc1277b1a203478de4cce2cd0cda1b1;hp=0b43d5acfceec9480e8b0b4bab8b4bc518bc2a42;hpb=f3a2bed063d98961d0619ca318185740f8cf6f99;p=tinc diff --git a/src/net.c b/src/net.c index 0b43d5ac..baf576d5 100644 --- a/src/net.c +++ b/src/net.c @@ -32,7 +32,6 @@ #include "names.h" #include "net.h" #include "netutl.h" -#include "process.h" #include "protocol.h" #include "subnet.h" #include "xalloc.h" @@ -130,6 +129,12 @@ void terminate_connection(connection_t *c, bool report) { if(outgoing) do_outgoing_connection(outgoing); + +#ifndef HAVE_MINGW + /* Clean up dead proxy processes */ + + while(waitpid(-1, NULL, WNOHANG) > 0); +#endif } /* @@ -298,7 +303,8 @@ static void sigterm_handler(void *data) { static void sighup_handler(void *data) { logger(DEBUG_ALWAYS, LOG_NOTICE, "Got %s signal", strsignal(((signal_t *)data)->signum)); reopenlogger(); - reload_configuration(); + if(reload_configuration()) + exit(1); } static void sigalrm_handler(void *data) { @@ -316,8 +322,7 @@ int reload_configuration(void) { init_configuration(&config_tree); if(!read_server_config()) { - logger(DEBUG_ALWAYS, LOG_ERR, "Unable to reread configuration file, exitting."); - event_exit(); + logger(DEBUG_ALWAYS, LOG_ERR, "Unable to reread configuration file."); return EINVAL; }