blob: 9aeeef7ef1b883e137f33f26d65131fbe7c04a13 [file] [log] [blame] [raw]
*** /sys/netinet/ip_output.c.orig Fri Aug 28 13:49:46 1998
--- /sys/netinet/ip_output.c Fri Aug 28 13:53:05 1998
***************
*** 99,104 ****
--- 99,109 ----
static struct mbuf *ip_insertoptions __P((struct mbuf *, struct mbuf *, int *));
static void ip_mloopback
__P((struct ifnet *, struct mbuf *, struct sockaddr_in *));
+ #if defined(IPFILTER)
+ extern int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf **));
+ extern int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf **));
+ #endif
+
/*
* IP output. The packet in mbuf chain m contains a skeletal IP
***************
*** 447,452 ****
--- 452,467 ----
if (mtu > IP_MAXPACKET)
mtu = IP_MAXPACKET;
+
+ #if defined(IPFILTER)
+ if (fr_checkp) {
+ struct mbuf *m1 = m;
+
+ if ((error = (*fr_checkp)(ip, hlen, ifp, 1, &m1)) || !m1)
+ goto done;
+ ip = mtod(m = m1, struct ip *);
+ }
+ #endif
#ifdef IPFW
if (ipfw_output.filter &&