From 0aae045af0c5a60dff64ebe4d7392f32cdc90c15 Mon Sep 17 00:00:00 2001 From: xinpeng wang Date: Wed, 5 Jan 2022 16:54:59 +0800 Subject: [PATCH] ctrl: Print the source address of the received commands Sometimes there is a program error to send a large number of commands to wpa_supplicant, and the source address can help quickly find the program that sends commands. Signed-off-by: xinpeng wang --- wpa_supplicant/ctrl_iface.c | 2 +- wpa_supplicant/ctrl_iface.h | 2 ++ wpa_supplicant/ctrl_iface_udp.c | 3 +++ wpa_supplicant/ctrl_iface_unix.c | 3 +++ 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index bc7b8e46f..70538b578 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -10697,7 +10697,7 @@ fail: #endif /* CONFIG_FILS */ -static int wpas_ctrl_cmd_debug_level(const char *cmd) +int wpas_ctrl_cmd_debug_level(const char *cmd) { if (os_strcmp(cmd, "PING") == 0 || os_strncmp(cmd, "BSS ", 4) == 0 || diff --git a/wpa_supplicant/ctrl_iface.h b/wpa_supplicant/ctrl_iface.h index dfbd25a03..9842ea1e7 100644 --- a/wpa_supplicant/ctrl_iface.h +++ b/wpa_supplicant/ctrl_iface.h @@ -122,6 +122,8 @@ void wpa_supplicant_global_ctrl_iface_deinit( void wpas_ctrl_radio_work_flush(struct wpa_supplicant *wpa_s); +int wpas_ctrl_cmd_debug_level(const char *cmd); + #else /* CONFIG_CTRL_IFACE */ static inline struct ctrl_iface_priv * diff --git a/wpa_supplicant/ctrl_iface_udp.c b/wpa_supplicant/ctrl_iface_udp.c index 1cbf7fa28..1178f406c 100644 --- a/wpa_supplicant/ctrl_iface_udp.c +++ b/wpa_supplicant/ctrl_iface_udp.c @@ -337,6 +337,9 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx, else reply_len = 2; } else { + sockaddr_print(wpas_ctrl_cmd_debug_level(buf), + "Control interface recv command from:", + &from, fromlen); reply = wpa_supplicant_ctrl_iface_process(wpa_s, pos, &reply_len); } diff --git a/wpa_supplicant/ctrl_iface_unix.c b/wpa_supplicant/ctrl_iface_unix.c index 639573dae..2052873d5 100644 --- a/wpa_supplicant/ctrl_iface_unix.c +++ b/wpa_supplicant/ctrl_iface_unix.c @@ -178,6 +178,9 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx, else reply_len = 2; } else { + sockaddr_print(wpas_ctrl_cmd_debug_level(buf), + "Control interface recv command from:", + &from, fromlen); reply_buf = wpa_supplicant_ctrl_iface_process(wpa_s, buf, &reply_len); reply = reply_buf;