求个NETLINK 编程事例,type 是NETLINK_NETFILTER的
新来的,不懂规矩,直接就开问了。想用NETLINK_NETFILTER 和内核交互,用了libnetlink/libmnl/libnetfilter_queue三个库,然后编了libnetfilter_queue 给的util 下面的nfqnl_test.c,编出来后直接到nfq_unbind_pf 函数报错,error 22,参数无效,我进内核看了下,调用到
err = nc->call(net->nfnl, skb, nlh, (const struct nlattr **)cda);
if (err == -EAGAIN)
{
goto replay;
}
return err;
返回的err,有人知道是怎么回事吗? netlinik网上资料很多,内核也有例子,可参考scsi_netlink.c 回复 1# txchxl
给你两个列子:
http://blog.chinaunix.net/uid-20788636-id-1841429.html
http://blog.csdn.net/arnoldlu/article/details/16827877
PS:要学会自己的google,找个例子还得上论坛去问,打字的时候都能找N个了。
奇怪为什么自带的netlink 16 api会报错~回复 2# 镇水铁牛
有看过,想知道NETLINK_NETFILTER 的err是怎么回事,因为用的是开源库,没改过代码回复 3# Tinnal
貌似netlink 16已经被使用了,你可以用靠后的。 我知道被用了啊,我想写个和16接口交互的程序,自己写了发现没反应,用开源的lib库,结果报上面的错误~郁闷 回复 6# 镇水铁牛 貌似只能使用自定义的NETLINK type,之前使用NETLINK_GENERIC都会报错,但是添加自定义的NETLINK type之后就可以顺利运行 还有这么奇葩的事?我是想把一些包传到NFQUEUE, 然后用NETFILTER 提供的API socket把包解析出来用,这么看来不太好实现。似乎只能用模块把skb 解析了。回复 8# humengez
上面写错了NETFILTER 是api 的12 接口,16是NETLINK_GENERIC
页:
[1]