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); }