+ -
当前位置:首页 → 问答吧 → 关于netlink问题的请教

关于netlink问题的请教

时间:2010-11-06

来源:互联网

NETLINK_CB(skb).pid = 0;
NETLINK_CB(skb).group  = 0;
NETLINK_CB(skb).dst_pid = pid;
NETLINK_CB(skb).dst_group = 0;

我用的是2.6.23.1的内核,编译时候说没有group和dst_pid项, 然后我找到结构定义的地方
struct netlink_skb_parms
{
        struct ucred                creds;                /* Skb credentials        */
        __u32                        pid;
        __u32                        dst_group;
        kernel_cap_t                eff_cap;
        __u32                        loginuid;        /* Login (audit) uid */
        __u32                        sid;                /* SELinux security id */
};
发现的确没有了,以前内核是有的。  

我现在是想问,没有了dst_pid 我如何知道传给那个应用程序? 请高手指教。谢谢

作者: rent198708   发布时间: 2010-11-06

我当时提过这个问题

http://linux.chinaunix.net/bbs/thread-1173153-1-1.html

由于我的水平低,查了半天也没查到
最后发现你不写这行也没关系。
反正我是调试成功了

还望各位高手给点说明,谢谢。

作者: 程序c   发布时间: 2010-11-06

回复 程序c


    不写也可以啊?
  难道是 pid = nl_h->nlmsg_pid;  获取pid    然后调用
  int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 pid, int nonblock);
  这个函数发送时候里面pid就是获得pid  所以不需要写.......  忘高人指点

作者: rent198708   发布时间: 2010-11-06



QUOTE:
回复  程序c


    不写也可以啊?
  难道是 pid = nl_h->nlmsg_pid;  获取pid    然后调用
  int n ...
rent198708 发表于 2010-11-06 17:04



反正我是这么调试通过的。确实可以

作者: 程序c   发布时间: 2010-11-06