Browse Source

Supernode clean shutdown

pull/128/head
emanuele-f 6 years ago
parent
commit
a4a974c34d
  1. 27
      sn.c

27
sn.c

@ -946,6 +946,27 @@ static void dump_registrations(int signo) {
/* *************************************************** */
static int keep_running;
#ifdef __linux__
static void term_handler(int sig) {
static int called = 0;
if(called) {
traceEvent(TRACE_NORMAL, "Ok I am leaving now");
_exit(0);
} else {
traceEvent(TRACE_NORMAL, "Shutting down...");
called = 1;
}
keep_running = 0;
}
#endif
/* *************************************************** */
/** Main program entry point from kernel. */
int main(int argc, char * const argv[]) {
int rc;
@ -997,10 +1018,13 @@ int main(int argc, char * const argv[]) {
traceEvent(TRACE_NORMAL, "supernode started");
#ifndef WIN32
#ifdef __linux__
signal(SIGTERM, term_handler);
signal(SIGINT, term_handler);
signal(SIGHUP, dump_registrations);
#endif
keep_running = 1;
return run_loop(&sss_node);
}
@ -1009,7 +1033,6 @@ int main(int argc, char * const argv[]) {
* daemonisation on some platforms. */
static int run_loop(n2n_sn_t * sss) {
uint8_t pktbuf[N2N_SN_PKTBUF_SIZE];
int keep_running=1;
time_t last_purge_edges = 0;
struct sn_community *comm, *tmp;

Loading…
Cancel
Save