mirror of
https://github.com/ntop/n2n.git
synced 2024-09-20 00:51:10 +02:00
Supernode clean shutdown
This commit is contained in:
parent
d247c0a73c
commit
a4a974c34d
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. */
|
/** Main program entry point from kernel. */
|
||||||
int main(int argc, char * const argv[]) {
|
int main(int argc, char * const argv[]) {
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -997,10 +1018,13 @@ int main(int argc, char * const argv[]) {
|
||||||
|
|
||||||
traceEvent(TRACE_NORMAL, "supernode started");
|
traceEvent(TRACE_NORMAL, "supernode started");
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifdef __linux__
|
||||||
|
signal(SIGTERM, term_handler);
|
||||||
|
signal(SIGINT, term_handler);
|
||||||
signal(SIGHUP, dump_registrations);
|
signal(SIGHUP, dump_registrations);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
keep_running = 1;
|
||||||
return run_loop(&sss_node);
|
return run_loop(&sss_node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1009,7 +1033,6 @@ int main(int argc, char * const argv[]) {
|
||||||
* daemonisation on some platforms. */
|
* daemonisation on some platforms. */
|
||||||
static int run_loop(n2n_sn_t * sss) {
|
static int run_loop(n2n_sn_t * sss) {
|
||||||
uint8_t pktbuf[N2N_SN_PKTBUF_SIZE];
|
uint8_t pktbuf[N2N_SN_PKTBUF_SIZE];
|
||||||
int keep_running=1;
|
|
||||||
time_t last_purge_edges = 0;
|
time_t last_purge_edges = 0;
|
||||||
struct sn_community *comm, *tmp;
|
struct sn_community *comm, *tmp;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user