Beispiel #1
0
void termination_handler(int sig) {
	PRINT_DEBUG("**********Terminating *******");

	//shutdown all module threads in backwards order of startup
	//rtm_shutdown();

	udp_shutdown();
	tcp_shutdown();
	icmp_shutdown();
	ipv4_shutdown();
	arp_shutdown();

	interface_shutdown(); //TODO finish
	daemon_shutdown(); //TODO finish
	switch_shutdown(); //TODO finish

	//have each module free data & que/sem //TODO finish each of these
	//rtm_release();
	udp_release();
	tcp_release();
	icmp_release();
	ipv4_release();
	arp_release();

	interface_release();
	daemon_release();
	switch_release();

	PRINT_DEBUG("FIN");
	exit(-1);
}
Beispiel #2
0
void sig_usr(int signo)
{
	syslog(LOG_ERR, "daemon terminated by user! recvfrom() retcode %llu error!", error_counter);
	daemon_release();
}
Beispiel #3
0
void sig_int(int signo)
{
	syslog(LOG_ERR, "recv SIGINT daemon quit!");
	daemon_release();
}