Hi Linux kernel / net guru,
我正在寻找一种如何在wpa_supplicant和内核之间挂接和打印NL(netlink)消息的方法。截至目前,我只是插入了几条printk信息来打印这些信息,但我认为这非常痛苦。
如果你有更好的主意,请告诉我。
感谢。
答案 0 :(得分:1)
考虑到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复制相关的函数并调用它们。请参阅libnl源代码中的nl_msg_dump()
(libnl/lib/msg.c
)。