当前位置: 技术问答>linux和unix
编译模块时出现'struct skbuff’ 没有名为'nh'的成员的错误
来源: 互联网 发布时间:2016-07-12
本文导语: 本帖最后由 interlc 于 2009-10-26 09:45:42 编辑 编译模块时出现‘struct sk_buff’ 没有名为 ‘nh’ 的成员的错误 从网上找了一段关于netfilter下hook的代码,实验一下,代码如下:#include #include #include #include #i...
从网上找了一段关于netfilter下hook的代码,实验一下,代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
static unsigned int icmp_srv(unsigned int hook,
struct sk_buff **pskb,
const struct net_device *in,
const struct net_device *out,
int (*okfn)(struct sk_buff *)
)
{
//printk(KERN_INFO"hook_icmp::icmp_srv()n");
struct iphdr *iph = (*pskb)->nh.iph;
if(iph->protocol == IPPROTO_ICMP)
{
printk(KERN_INFO"hook_icmp::icmp_srv: receive ICMP packetn");
printk(KERN_INFO"src: ");
}
return NF_ACCEPT;
}
static struct nf_hook_ops icmpsrv_ops =
{
.hook = icmp_srv,
.pf = PF_INET,
.hooknum = NF_IP_PRE_ROUTING,
.priority = NF_IP_PRI_FILTER -1,
};
static int __init init_hook_icmp(void)
{
return nf_register_hook(&icmpsrv_ops);
}
static void __exit fini_hook_icmp(void)
{
nf_unregister_hook(&icmpsrv_ops);
}
MODULE_LICENSE("GPL");
module_init(init_hook_icmp);
module_exit(fini_hook_icmp);
然后就出现了上面讲得错误,请问怎么解决
|
源程序对应的内核版本跟你用的版本不一样。
内核更新基本不考虑内核代码的兼容性。
内核更新基本不考虑内核代码的兼容性。
|
去网上找找,和看看内核的修改日志文件