在<Linux/netfilter.h>中的钩子函数的签名是:
unsigned int nf_hookfn(unsigned int hooknum,struct sk_buff **skb, const struct net_device *in, const struct net_device *out, int (*okfn) (struct sk_buff *))
当我将nf_hookfn函数赋值给hook时,就出现了warning: assignment from incompatible pointer type的错误。
后来改为:unsigned int nf_hookfn(unsigned int hooknum,struct sk_buff *skb, const struct net_device *in, const struct net_device *out, int (*okfn) (struct sk_buff *))编译通过。说明从kernel 2.6.*开始,函数的参数值变化了。
本文详细介绍了在Linux/netfilter.h中定义的钩子函数nf_hookfn的签名,并讨论了从kernel 2.6.*开始该函数参数的变化。当尝试将nf_hookfn函数赋值给hook时遇到类型不兼容警告的问题及解决办法。
3715





