static int pflog_modevent(module_t mod, int type, void *data) { int error = 0; switch (type) { case MOD_LOAD: pflogattach(1); PF_RULES_WLOCK(); pflog_packet_ptr = pflog_packet; PF_RULES_WUNLOCK(); break; case MOD_UNLOAD: PF_RULES_WLOCK(); pflog_packet_ptr = NULL; PF_RULES_WUNLOCK(); if_clone_detach(pflog_cloner); break; default: error = EINVAL; break; } return error; }
static int pf_lkmload(struct lkm_table *lkmtp, int cmd) { if (lkmexists(lkmtp)) return (EEXIST); pfattach(1); pflogattach(1); return (0); }