这两天 学习netfilter钩子函数编程。
按照网上的教程进行 结果总是出错!
自己的编写的内核模块内购挂载,但是ping 自己的主机就会崩溃!
于是仔细查了一下原因 !
终于知道,内核中的钩子函数原型发生了改变
由 typedef unsigned int nf_hookfn(unsigned int hooknum,
                              struct sk_buff **skb,
                               const structnet_device *in,
                               const struct net_device*out,
                               int (*okfn)(struct sk_buff *));
变为
typedef unsigned int nf_hookfn(unsigned int hooknum,
                              struct sk_buff *skb,
                               const structnet_device *in,
                               const struct net_device*out,
                               int (*okfn)(struct sk_buff *));
而我是在linux-3.8的内核上进行学习的,而网上很多教程根据linux2.6.24之前的数据结构来编写的
这真是太坑爹了!

09-23 13:23