1145519Sdarrenr/* $FreeBSD$ */ 2145510Sdarrenr 3145510Sdarrenr/* 4145510Sdarrenr * Copyright (C) 2000 by Darren Reed. 5145510Sdarrenr * 6145510Sdarrenr * See the IPFILTER.LICENCE file for details on licencing. 7145510Sdarrenr * 8153881Sguido * $Id: mlfk_rule.c,v 2.4.4.2 2004/04/16 23:32:08 darrenr Exp $ 9145510Sdarrenr */ 10145510Sdarrenr 11145510Sdarrenr 12145510Sdarrenr#include <sys/param.h> 13145510Sdarrenr#include <sys/systm.h> 14145510Sdarrenr#include <sys/kernel.h> 15145510Sdarrenr#include <sys/module.h> 16145510Sdarrenr#include <sys/conf.h> 17145510Sdarrenr#include <sys/socket.h> 18145510Sdarrenr#include <sys/sysctl.h> 19145510Sdarrenr#include <net/if.h> 20145510Sdarrenr#include <netinet/in_systm.h> 21145510Sdarrenr#include <netinet/in.h> 22145510Sdarrenr 23145510Sdarrenr#include <netinet/ipl.h> 24145510Sdarrenr#include <netinet/ip_compat.h> 25145510Sdarrenr#include <netinet/ip_fil.h> 26145510Sdarrenr#include <netinet/ip_state.h> 27145510Sdarrenr#include <netinet/ip_nat.h> 28145510Sdarrenr#include <netinet/ip_auth.h> 29145510Sdarrenr#include <netinet/ip_frag.h> 30145510Sdarrenr 31145510Sdarrenr#include "ip_rules.h" 32145510Sdarrenr 33145510Sdarrenr 34145510Sdarrenrstatic int 35145510Sdarrenripfrule_modevent(module_t mod, int type, void *unused) 36145510Sdarrenr{ 37145510Sdarrenr int error = 0; 38145510Sdarrenr 39145510Sdarrenr switch (type) 40145510Sdarrenr { 41145510Sdarrenr case MOD_LOAD : 42145510Sdarrenr error = ipfrule_add(); 43145510Sdarrenr if (!error) 44145510Sdarrenr fr_refcnt++; 45145510Sdarrenr break; 46145510Sdarrenr case MOD_UNLOAD : 47145510Sdarrenr error = ipfrule_remove(); 48145510Sdarrenr if (!error) 49145510Sdarrenr fr_refcnt--; 50145510Sdarrenr break; 51145510Sdarrenr default: 52145510Sdarrenr error = EINVAL; 53145510Sdarrenr break; 54145510Sdarrenr } 55145510Sdarrenr return error; 56145510Sdarrenr} 57145510Sdarrenr 58145510Sdarrenrstatic moduledata_t ipfrulemod = { 59145510Sdarrenr "ipfrule", 60145510Sdarrenr ipfrule_modevent, 61145510Sdarrenr 0 62145510Sdarrenr}; 63145510SdarrenrDECLARE_MODULE(ipfrule, ipfrulemod, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY); 64145510Sdarrenr#ifdef MODULE_DEPEND 65145510SdarrenrMODULE_DEPEND(ipfrule, ipfilter, 1, 1, 1); 66145510Sdarrenr#endif 67145510Sdarrenr#ifdef MODULE_VERSION 68145510SdarrenrMODULE_VERSION(ipfrule, 1); 69145510Sdarrenr#endif 70