Example #1
0
static int
ipf_modunload()
{
	int error, i;

	if (ipfmain.ipf_refcnt)
		return EBUSY;

	if (ipf_fbsd_sysctl_destroy(&ipfmain) != 0)
		return EIO;

	error = ipf_pfil_unhook();
	if (error != 0)
		return error;

	if (ipfmain.ipf_running >= 0) {
		error = ipfdetach(&ipfmain);
		if (error != 0)
			return error;

		ipf_fbsd_sysctl_destroy(&ipfmain);
		ipf_destroy_all(&ipfmain);
		ipf_unload_all();
	} else
		error = 0;

	ipfmain.ipf_running = -2;

	for (i = 0; ipf_devfiles[i]; i++) {
		if (ipf_devs[i] != NULL)
			destroy_dev(ipf_devs[i]);
	}

	printf("%s unloaded\n", ipfilter_version);

	return error;
}
Example #2
0
static int
ipf_modunload()
{
	int error, i;

	ipf_event_dereg();

	ipf_fbsd_sysctl_destroy();

	error = ipf_pfil_unhook();
	if (error != 0)
		return error;

	for (i = 0; ipf_devfiles[i]; i++) {
		if (ipf_devs[i] != NULL)
			destroy_dev(ipf_devs[i]);
	}

	ipf_unload_all();

	printf("%s unloaded\n", ipfilter_version);

	return error;
}