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