blob: 8786ca482c71f06b4039fe9ba59b06b9f89cefb3 [file] [log] [blame] [raw]
*** ip_input.c.dist Wed Sep 17 15:00:47 1997
--- ip_input.c Wed May 20 13:57:00 1998
***************
*** 175,180 ****
--- 175,187 ----
struct ip_mib ip_statistics={2,64,}; /* Forwarding=No, Default TTL=64 */
#endif
+ #if !defined(CONFIG_FIREWALL_IPFILTER) && defined(CONFIG_FIREWALL_IPFILTER_MODULE)
+ # define CONFIG_FIREWALL_IPFILTER
+ #endif
+ #ifdef CONFIG_FIREWALL_IPFILTER
+ int (*fr_checkp)(struct iphdr *, struct device *, int, struct sk_buff **) = NULL;
+ #endif
+
/*
* Handle the issuing of an ioctl() request
* for the ip device. This is scheduled to
***************
*** 417,422 ****
--- 424,437 ----
is_frag|=IPFWD_LASTFRAG;
}
+ #endif
+ #ifdef CONFIG_FIREWALL_IPFILTER
+ if (fr_checkp && (*fr_checkp)(iph, skb->dev, 0, &skb))
+ {
+ if (skb)
+ kfree_skb(skb, FREE_WRITE);
+ return 0;
+ }
#endif
/*
* Do any IP forwarding required. chk_addr() is expensive -- avoid it someday.