- 论坛徽章:
- 0
|
我在学习在linux系统上加载防火墙模块.我不太会弄,试了一个简单的:\r\n我写的模块如下:\r\n#define __KERNEL__ \r\n#define MODULE\r\n\r\n#include <linux/kernel.h>;\r\n#include <linux/module.h>;\r\n#include <linux/skbuff.h>;\r\n#include <linux/netdevice.h>;\r\n#include <linux/config.h>;\r\n#include <linux/ip.h>;\r\n#include <linux/tcp.h>;\r\n#include <linux/udp.h>;\r\n#include <linux/netfilter_ipv4.h>;\r\n#include <linux/netfilter.h>;\r\n\r\nstatic unsigned int user_firewall(\r\n unsigned int hooknum,\r\n struct sk_buff **skb,\r\n const struct net_device *in,\r\n const struct net_device *out,\r\n int (*okfn)(struct sk_buff *))\r\n{\r\n printk(\"A packet is captured.\\n\" ;\r\n return NF_ACCEPT;\r\n}\r\n\r\nstatic struct nf_hook_ops filter\r\n={\r\n { NULL, NULL },\r\n user_firewall,\r\n PF_INET,\r\n NF_IP_LOCAL_IN,\r\n NF_IP_PRI_FILTER\r\n}; \r\n\r\nint init_module(void)\r\n{\r\n return nf_register_hook(&filter);\r\n}\r\n\r\nvoid cleanup_module(void)\r\n{\r\n nf_unregister_hook(&filter);\r\n}\r\n不料一编译,立受打击:\r\n[root@venus module]# gcc -c -I /usr/src/linux-2.4.18-14/include user_firewall.c\r\nuser_firewall.c:27: variable `filter\' has initializer but incomplete type\r\nuser_firewall.c:28: extra brace group at end of initializer\r\nuser_firewall.c:28: (near initialization for `filter\')\r\nuser_firewall.c:28: warning: excess elements in struct initializer\r\nuser_firewall.c:28: warning: (near initialization for `filter\')\r\nuser_firewall.c:29: warning: excess elements in struct initializer\r\nuser_firewall.c:29: warning: (near initialization for `filter\')\r\nuser_firewall.c:30: warning: excess elements in struct initializer\r\nuser_firewall.c:30: warning: (near initialization for `filter\')\r\nuser_firewall.c:31: warning: excess elements in struct initializer\r\nuser_firewall.c:31: warning: (near initialization for `filter\')\r\nuser_firewall.c:33: warning: excess elements in struct initializer\r\nuser_firewall.c:33: warning: (near initialization for `filter\')\r\nuser_firewall.c:27: storage size of `filter\' isn\'t known\r\n请问错误在哪里?我应当怎样修改?\r\n还请大虾指教!小弟感激不尽!  |
|