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