自己写的一个NAT功能,挂载pre routing 和 post routing两个钩子函数。但是insmod 模块后,系统直接重启。我尝试注掉钩子函数内部的内容后,不重启了,但是rmmod时 又重启。说明可能是挂载有问题, 但是找不到问题出在哪。
{
nfhk_serv_in.hook = nf_hook_proc_in;
nfhk_serv_in.pf = PF_INET;
nfhk_serv_in.hooknum = NF_INET_PRE_ROUTING;
nfhk_serv_in.priority = NF_BR_PRI_FIRST;
//ret = nf_register_hook(&nfhk_serv_in);
if (ret != 0)
return ret;
nfhk_serv_out.hook = nf_hook_proc_out;
nfhk_serv_out.pf = PF_INET;
nfhk_serv_out.hooknum = NF_INET_POST_ROUTING;
nfhk_serv_out.priority = NF_BR_PRI_FIRST;
ret = nf_register_hook(&nfhk_serv_out);
if (ret != 0)
return ret;
}