patch-2.1.30 linux/include/linux/firewall.h

Next file: linux/include/linux/hdlcdrv.h
Previous file: linux/include/linux/etherdevice.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.29/linux/include/linux/firewall.h linux/include/linux/firewall.h
@@ -1,26 +1,29 @@
 #ifndef __LINUX_FIREWALL_H
 #define __LINUX_FIREWALL_H
 
+#include <linux/config.h>
+
 /*
  *	Definitions for loadable firewall modules
  */
 
-#define FW_BLOCK	0
-#define FW_ACCEPT	1
+#define FW_QUEUE	0
+#define FW_BLOCK	1
+#define FW_ACCEPT	2
 #define FW_REJECT	(-1)
-#define FW_REDIRECT	2
-#define FW_MASQUERADE	3
-#define FW_SKIP		4
+#define FW_REDIRECT	3
+#define FW_MASQUERADE	4
+#define FW_SKIP		5
 
 struct firewall_ops
 {
 	struct firewall_ops *next;
 	int (*fw_forward)(struct firewall_ops *this, int pf, 
-			struct device *dev, void *phdr, void *arg);
+			struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
 	int (*fw_input)(struct firewall_ops *this, int pf, 
-			struct device *dev, void *phdr, void *arg);
+			struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
 	int (*fw_output)(struct firewall_ops *this, int pf, 
-			struct device *dev, void *phdr, void *arg);
+			struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
 	/* Data falling in the second 486 cache line isn't used directly
 	   during a firewall call and scan, only by insert/delete and other
 	   unusual cases
@@ -32,10 +35,27 @@
 #ifdef __KERNEL__
 extern int register_firewall(int pf, struct firewall_ops *fw);
 extern int unregister_firewall(int pf, struct firewall_ops *fw);
-extern int call_fw_firewall(int pf, struct device *dev, void *phdr, void *arg);
-extern int call_in_firewall(int pf, struct device *dev, void *phdr, void *arg);
-extern int call_out_firewall(int pf, struct device *dev, void *phdr, void *arg);
 extern void fwchain_init(void);
-#endif
+#ifdef CONFIG_FIREWALL
+extern int call_fw_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
+extern int call_in_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
+extern int call_out_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **pskb);
+#else
+extern __inline__ int call_fw_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **skb)
+{
+	return FW_ACCEPT;
+}
+
+extern __inline__ int call_in_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **skb)
+{
+	return FW_ACCEPT;
+}
 
+extern __inline__ int call_out_firewall(int pf, struct device *dev, void *phdr, void *arg, struct sk_buff **skb)
+{
+	return FW_ACCEPT;
+}
+
+#endif
+#endif
 #endif

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov