请教netlink的问题

发布于 2022-07-26 23:52:10 字数 1362 浏览 28 评论 2

偶在2.4.21上,注册netlink socket,最简单的代码了:

  1. static int __init init(void)
  2. {
  3.         printk("Init netlink modules.n");
  4.         mynlfd = netlink_kernel_create(23,my_rev_handler);
  5.        
  6.         if(!mynlfd)
  7.         {
  8.                 printk("Can't create netlink!n");
  9.                 return -1;
  10.         }
  11.                 /*多加了这句判断*/
  12.         if(!mynlfd->socket)
  13.         {
  14.                 printk("Error:socket is null!n");
  15.                 return -1;
  16.         }
  17.        
  18.         return 0;
  19. }

复制代码

我发现,注册完成后,所有的成员指针都是空的,郁闷了……
# insmod /mnt/nltest.o
Using /mnt/nltest.o
Init netlink modules.
Error:socket is null!
insmod: init_module: nltest: Operation not permitted

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

败给现实 2022-07-27 14:02:39

原帖由 showboy 于 2006-9-27 21:24 发表
netlink_kernel_create
的源码呢?

这是内核API啊!!!!
如果感兴趣,可以参考af_netlink.c,昨看了它的源码,估计要出问题,也应该是其调用skb_alloc出了什么问题……

泛泛之交 2022-07-27 03:15:41

netlink_kernel_create
的源码呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文