免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1420 | 回复: 5
打印 上一主题 下一主题

请教linux系统上加载防火墙模块的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-02 14:18 |只看该作者 |倒序浏览
我正在学习在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
请问错在那里?我该如何修改?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-06-02 17:03 |只看该作者

请教linux系统上加载防火墙模块的问题!

请加上code功能吧,拜托!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-06-02 17:42 |只看该作者

请教linux系统上加载防火墙模块的问题!

我这边编译没有问题。

看样子,像是你的这个结构在这些头文件中没有定义。

论坛徽章:
0
4 [报告]
发表于 2003-06-02 17:50 |只看该作者

请教linux系统上加载防火墙模块的问题!

编译选项应该有问题吧
内衣内核模块的编译是有特殊选项的

如-DKERNEL 等

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-06-02 17:52 |只看该作者

请教linux系统上加载防火墙模块的问题!

这些都在源文件中定义了。我这边没有问题的。

论坛徽章:
0
6 [报告]
发表于 2003-06-02 20:06 |只看该作者

请教linux系统上加载防火墙模块的问题!

variable `filter' has initializer but incomplete type
??

应该是内核源码版本不对
所以会报错

检查看看INSTALL中有没有说明对应的内核版本号
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP