--- libnids-1.24/src/libnids.c 2010-03-02 00:43:25.000000000 +0330
+++ libnids-1.24-mine/src/libnids.c 2012-05-07 20:46:52.137492412 +0430
@@ -688,6 +688,7 @@ int nids_run()
}
START_CAP_QUEUE_PROCESS_THREAD(); /* threading... */
pcap_loop(desc, -1, (pcap_handler) nids_pcap_handler, 0);
+ return 0;
/* FIXME: will this code ever be called? Don't think so - mcree */
STOP_CAP_QUEUE_PROCESS_THREAD();
nids_exit();
@@ -714,8 +715,10 @@ void nids_exit()
scan_exit();
strcpy(nids_errbuf, "loop: ");
strncat(nids_errbuf, pcap_geterr(desc), sizeof nids_errbuf - 7);
- if (!nids_params.pcap_desc)
- pcap_close(desc);
+ if (!nids_params.pcap_desc) {
+ pcap_breakloop(desc);
+ pcap_close(desc);
+ }
desc = NULL;
free(ip_procs);