Example #1
0
static int unload_module(void) {
	unsigned int i = 0;

	LNOTICE("unloaded module %s", module_name);

	for (i = 0; i < profile_size; i++) {

		if(sniffer_proto[i]) {
  		    pcap_breakloop(sniffer_proto[i]);
  		    pthread_join(call_thread[i],NULL);
		}

		if (reasm[i] != NULL) {
                	reasm_ip_free(reasm[i]);  
                        reasm[i] = NULL;
                }

                if (tcpreasm[i] != NULL) {
                        tcpreasm_ip_free(tcpreasm[i]);
                        tcpreasm[i] = NULL;
                }


		free_profile(i);
	}
	/* Close socket */
	//pcap_close(sniffer_proto);
	return 0;
}
Example #2
0
nmsg_res
nmsg_pcap_input_close(nmsg_pcap_t *pcap) {
	pcap_freecode(&(*pcap)->userbpf);
	pcap_close((*pcap)->handle);
	if ((*pcap)->user != NULL)
		pcap_close((*pcap)->user);

	reasm_ip_free((*pcap)->reasm);

	free((*pcap)->new_pkt);
	free((*pcap)->userbpft);
	free(*pcap);

	*pcap = NULL;
	return (nmsg_res_success);
}