Esempio n. 1
0
void setup_packethandler(char *fname, char *filter ) {
char 	errbuf[PCAP_ERRBUF_SIZE];

	pcap_handle = setup_pcap(fname, filter, errbuf);
	if ( !pcap_handle ) {
		fprintf(stderr, "Can't init pcap: %s\n", errbuf); 
		exit(255);
	}

/*
	// pcap_loop(p, -1, decode_packet, NULL);
	while ( pcap_next_ex(pcap_handle, &header, (const u_char**)&pkt_data) == 1 ) {
		decode_packet(header, pkt_data);
	}
*/

} /* End of setup_packethandler */
int
main(int argc, char **argv) {
	assert(nmsg_init() == nmsg_res_success);
	assert(nmsg_msgmod_lookup_byname("base", "pkt") != NULL);

	setup_io();
	process_args(argc, argv);
	setup_pcap();
	setup_threads();

	signal(SIGINT, shutdown_handler);
	signal(SIGTERM, shutdown_handler);

	if (nmsg_io_loop(io) != nmsg_res_success)
		errx(EXIT_FAILURE, "nmsg_io_loop() failed");

	cleanup();

	return (EXIT_SUCCESS);
}