[英]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.