2016-10-12 39 views
0

嗨Linux內核/淨大師,如何找出NL消息被交換

我正在尋找一種方式如何連接並打印出NL(網絡鏈路)的wpa_supplicant和內核之間的消息。到目前爲止,我只是插入了幾條printk消息來打印這些消息,但我認爲這是非常痛苦的。

請讓我知道你是否有更好的主意。

謝謝。

回答

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)。