请教netlink的问题
偶在2.4.21上,注册netlink socket,最简单的代码了:
- static int __init init(void)
- {
- printk("Init netlink modules.n");
- mynlfd = netlink_kernel_create(23,my_rev_handler);
- if(!mynlfd)
- {
- printk("Can't create netlink!n");
- return -1;
- }
- /*多加了这句判断*/
- if(!mynlfd->socket)
- {
- printk("Error:socket is null!n");
- return -1;
- }
- return 0;
- }
复制代码
我发现,注册完成后,所有的成员指针都是空的,郁闷了……
# insmod /mnt/nltest.o
Using /mnt/nltest.o
Init netlink modules.
Error:socket is null!
insmod: init_module: nltest: Operation not permitted
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是内核API啊!!!!
如果感兴趣,可以参考af_netlink.c,昨看了它的源码,估计要出问题,也应该是其调用skb_alloc出了什么问题……
netlink_kernel_create
的源码呢?