/** * Init the network monitoring * @param device Device * @param dump PCAP file * @param pcap PCAP filter */ void net_init(char *device, char *dump, char *pcap) { static struct nids_chksum_ctl ctl; nids_params.n_tcp_streams = 4096; /* Streams to track for re-assembly */ nids_params.n_hosts = 1024; /* Hosts to track for defrag */ nids_params.scan_num_hosts = 0; /* Disable portscan detection */ nids_params.device = device; nids_params.filename = dump; nids_params.pcap_filter = pcap; if (!nids_init()) fatal("Initialization of libnids failed"); /* Register callbacks */ nids_register_udp((void *) net_udp); nids_register_tcp((void *) net_tcp); /* Disable checksum control */ ctl.netaddr = 0; ctl.mask = 0; ctl.action = NIDS_DONT_CHKSUM; nids_register_chksum_ctl(&ctl, 1); }
void sessions_nids_init(pcap_t *p) { nids_params.pcap_desc = p; nids_params.tcp_workarounds = 1; if (!nids_init()) { fprintf(stderr, "nids_init: %s\n", nids_errbuf); exit(-1); } nids_register_ip(ip_callback); nids_register_udp(udp_callback); nids_register_tcp(tcp_callback); }