繁体   English   中英

如何弄清楚交换了哪些NL消息

[英]how to figure out what NL messages are exchanged

嗨,Linux内核/网络大师,

我正在寻找一种方法,该方法如何在wpa_supplicant和内核之间挂接并打印出NL(netlink)消息。 到目前为止,我只是插入了几条printk消息来打印这些消息,但是我认为这非常痛苦。

如果您有更好的主意,请告诉我。

谢谢。

考虑到OP专门使用wpa_supplicant,这不是一个很好的答案,但可能会帮助意外吸引到这里的人们。

如果有人在使用libnl(wpa_supplicant并未使用),那么您要做的就是在用户空间中初始化套接字后,

error = nl_socket_modify_cb(sk, NL_CB_MSG_IN, NL_CB_DEBUG, NULL, NULL);
if (error < 0)
    log_err("Could not register debug cb for incoming packets.");
error = nl_socket_modify_cb(sk, NL_CB_MSG_OUT, NL_CB_DEBUG, NULL, NULL);
if (error < 0)
    log_err("Could not register debug cb for outgoing packets.");

每当用户空间客户端发送或接收消息时,它将打印所有消息。

(此外,您也可以随时根据需要调用nl_msg_dump(msg, stderr) 。)

对于不使用libnl的东西,您始终可以从libnl复制相关函数并调用它们。 nl_msg_dump()在libnl的源代码( libnl/lib/msg.c )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM