diff mbox

[5/8] wpa_cli: send ALL_STA command to the correct interface

Message ID 1449744969-14895-5-git-send-email-ilan.peer@intel.com
State Accepted
Headers show

Commit Message

Ilan Peer Dec. 10, 2015, 10:56 a.m. UTC
From: Eliad Peller <eliad@wizery.com>

wpa_ctrl_command_sta(), called by the "ALL_STA" handler,
didn't consider ifname_prefix, resulting in various
commands being sent to the global control interface,
rather than the specified interface.

This in turn caused the unexpected "UNKNOWN COMMAND"
result be considered as valid station, resulting in
infinite loop while trying to get all stations.

Fix it by considering ifname_prefix, similarly
to _wpa_ctrl_command().

Signed-off-by: Eliad Peller <eliadx.peller@intel.com>
---
 wpa_supplicant/wpa_cli.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox

Patch

diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c
index 275bf39..cef18ba 100644
--- a/wpa_supplicant/wpa_cli.c
+++ b/wpa_supplicant/wpa_cli.c
@@ -1927,6 +1927,12 @@  static int wpa_ctrl_command_sta(struct wpa_ctrl *ctrl, char *cmd,
 		printf("Not connected to hostapd - command dropped.\n");
 		return -1;
 	}
+	if (ifname_prefix) {
+		os_snprintf(buf, sizeof(buf), "IFNAME=%s %s",
+			    ifname_prefix, cmd);
+		buf[sizeof(buf) - 1] = '\0';
+		cmd = buf;
+	}
 	len = sizeof(buf) - 1;
 	ret = wpa_ctrl_request(ctrl, cmd, os_strlen(cmd), buf, &len,
 			       wpa_cli_msg_cb);