Chinaunix

标题: 请教在linux系统上加载防火墙模块的问题! [打印本页]

作者: 金石开    时间: 2003-06-02 23:07
标题: 请教在linux系统上加载防火墙模块的问题!
我在学习在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
请问错误在哪里?我应当怎样修改?
还请大虾指教!小弟感激不尽!
作者: 金石开    时间: 2003-06-03 09:58
标题: 请教在linux系统上加载防火墙模块的问题!
还请大虾指教!
作者: JohnBull    时间: 2003-06-03 16:44
标题: 请教在linux系统上加载防火墙模块的问题!
我没太仔细看,但觉得你的代码应该没错,恐怕是你的系统不干净。
如果你想做内核开发的话,建议你自己从官方站下载源代码包,不要使用RedHat自带的,毛病一大堆!我早领教过了。
作者: JohnBull    时间: 2003-06-03 16:46
标题: 请教在linux系统上加载防火墙模块的问题!
我没太仔细看,但觉得你的代码应该没错,恐怕是你的系统不干净。
如果你想做内核开发的话,建议你自己从官方站下载源代码包,不要使用RedHat自带的,毛病一大堆!我早领教过了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2