LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1162|回复: 4

为啥我这段netfilter的代码在2.6内核下没效果

[复制链接]
发表于 2006-4-6 22:21:57 | 显示全部楼层 |阅读模式
#define __KERNEL__
#define MODULE

#include <linux/kernel.h>
#include <linux/module.h>

#include <linux/init.h>

#include <linux/ip.h>        
#include <linux/netfilter.h>        
#include <linux/netfilter_ipv4.h>   
#include <linux/skbuff.h>         
#include <linux/udp.h>            
#include <linux/tcp.h>            
#include <net/tcp.h>   
#include <linux/in.h>   


MODULE_LICENSE("GPL");

//每经过一个数据包就会调用这个函数一次。
unsigned int pb_hook( unsigned int hooknum,
                        struct sk_buff **pskb,
                        const struct net_device *in,
                        const struct net_device *out,
                        int (*okfn)(struct sk_buff*) )
{
    printk("receive one pkt\n");
    return NF_ACCEPT;
}


static struct nf_hook_ops nfo_ip_local_in = {
    {NULL,NULL},
    pb_hook,
    PF_INET,
    NF_IP_LOCAL_IN,
    NF_IP_PRI_FIRST
};


static int __init pb_test_init(void)
{
    return nf_register_hook(&nfo_ip_local_in);
}
module_init(pb_test_init);

static void __exit pb_test_exit(void)
{
    nf_unregister_hook(&nfo_ip_local_in);
}
module_exit(pb_test_exit);


2.4下完全正常
 楼主| 发表于 2006-4-8 12:54:34 | 显示全部楼层
研究了

struct nf_hook_ops都变了。

成员加了一个struct module,有谁了解么?
回复 支持 反对

使用道具 举报

铁丝上的比目鱼 该用户已被删除
发表于 2006-4-13 12:20:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

发表于 2006-4-18 22:01:50 | 显示全部楼层
初始化结构出错了,2.6中struct nf_hook_ops多了东西。
struct nf_hook_ops nfo_ip_local_in=
{
        .list={ NULL, NULL},
        .hook= pb_hook,
        .pf=PF_INET,
        .hooknum=NF_IP_LOCAL_IN,
        .priority=NF_IP_PRI_FIRST
};
,新成员不用也行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-27 18:34:54 | 显示全部楼层
请问那个新成员是干啥的?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表