Esempio n. 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);
}
Esempio n. 2
0
static void tcp_stream_chunk_free(struct tcp_stream_chunk *chunk)
{
	if (chunk->tcp) {
		tcp_release(chunk->tcp);
		chunk->tcp = NULL;
	}

	vector_destroy(&chunk->modifs);
	free(chunk);
}