summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/mlh_rule.c
diff options
context:
space:
mode:
authordarrenr <darrenr@FreeBSD.org>2005-04-25 17:31:50 +0000
committerdarrenr <darrenr@FreeBSD.org>2005-04-25 17:31:50 +0000
commitd438802dcb3e270d6fcc65f075c808c64853a7c2 (patch)
treee2e1c7115044e6dfc86ff65598566fa32e5f7421 /contrib/ipfilter/mlh_rule.c
parent590450fec65a8e72a8965117398bc8f14938b4a8 (diff)
downloadFreeBSD-src-d438802dcb3e270d6fcc65f075c808c64853a7c2.zip
FreeBSD-src-d438802dcb3e270d6fcc65f075c808c64853a7c2.tar.gz
import ipfilter 4.1.8 into the vendor branch
Diffstat (limited to 'contrib/ipfilter/mlh_rule.c')
-rw-r--r--contrib/ipfilter/mlh_rule.c114
1 files changed, 114 insertions, 0 deletions
diff --git a/contrib/ipfilter/mlh_rule.c b/contrib/ipfilter/mlh_rule.c
new file mode 100644
index 0000000..e71c7be
--- /dev/null
+++ b/contrib/ipfilter/mlh_rule.c
@@ -0,0 +1,114 @@
+/* $NetBSD$ */
+
+/*
+ * Copyright (C) 1993-1998 by Darren Reed.
+ *
+ * See the IPFILTER.LICENCE file for details on licencing.
+ *
+ */
+/* #pragma ident "@(#)solaris.c 1.12 6/5/96 (C) 1995 Darren Reed"*/
+
+/*typedef unsigned int spustate_t;*/
+struct uio;
+
+#include <sys/types.h>
+#include <sys/cmn_err.h>
+#include <sys/kernel.h>
+#include <sys/systm.h>
+#include <sys/malloc.h>
+#include <sys/conf.h>
+#include <sys/callout.h>
+#include <sys/moddefs.h>
+#include <sys/io.h>
+#include <sys/wsio.h>
+#include <sys/param.h>
+#include <sys/errno.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/stropts.h>
+#include <net/if.h>
+#include <net/af.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/if_ether.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/udp.h>
+#include <netinet/tcpip.h>
+#include <netinet/ip_icmp.h>
+
+#include "ip_compat.h"
+#include "ip_fil.h"
+#include "ip_rules.h"
+
+
+/*
+ * Driver Header
+ */
+static drv_info_t ipf_drv_info = {
+ "IP Filter Rules", /* type */
+ "pseudo", /* class */
+ DRV_PSEUDO|DRV_SAVE_CONF|DRV_MP_SAFE, /* flags */
+ -1, /* b_major */
+ -1, /* c_major */
+ NULL, /* cdio */
+ NULL, /* gio_private */
+ NULL, /* cdio_private */
+};
+
+
+extern struct mod_operations gio_mod_ops;
+static drv_info_t ipf_drv_info;
+extern struct mod_conf_data ipf_conf_data;
+
+static struct mod_type_data ipf_drv_link = {
+ IPL_VERSION, (void *)NULL
+};
+
+static struct modlink ipf_mod_link[] = {
+ { &gio_mod_ops, (void *)&ipf_drv_link },
+ { NULL, (void *)NULL }
+};
+
+struct modwrapper ipf_wrapper = {
+ MODREV,
+ ipf_load,
+ ipf_unload,
+ (void (*)())NULL,
+ (void *)&ipf_conf_data,
+ ipf_mod_link
+};
+
+
+static int ipf_load(void *arg)
+{
+ int i;
+
+ i = ipfrule_add();
+ if (!i)
+ fr_refcnt--;
+#ifdef IPFDEBUG
+ printf("IP Filter Rules: ipfrule_add() = %d\n", i);
+#endif
+ if (!i)
+ cmn_err(CE_CONT, "IP Filter Rules: Loaded\n");
+ return i;
+}
+
+
+static int ipf_unload(void *arg)
+{
+ int i;
+
+ i = ipfrule_remove();
+ if (!i)
+ fr_refcnt--;
+#ifdef IPFDEBUG
+ printf("IP Filter Rules: ipfrule_remove() = %d\n", i);
+#endif
+ if (!i)
+ cmn_err(CE_CONT, "IP Filter Rules: Unloaded\n");
+ return i;
+}
OpenPOWER on IntegriCloud