wpa_supplicant: Update to Version 0.8.26 from BRCM
- Add interface command
- Improve scan handling during P2P
BUG: b/6324527, b/6427094
Change-Id: I4425f44d2a15de0725ba4a1b42cc56e10954b314
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c
index 43bcc55..4685970 100644
--- a/wpa_supplicant/wpa_cli.c
+++ b/wpa_supplicant/wpa_cli.c
@@ -80,6 +80,9 @@
static const char *action_file = NULL;
static int ping_interval = 5;
static int interactive = 0;
+#if defined(CONFIG_P2P) && defined(ANDROID_P2P)
+static char* redirect_interface = NULL;
+#endif
struct cli_txt_entry {
struct dl_list list;
@@ -400,6 +403,9 @@
#else
char buf[2048];
#endif
+#if defined(CONFIG_P2P) && defined(ANDROID_P2P)
+ char _cmd[256];
+#endif
size_t len;
int ret;
@@ -407,6 +413,22 @@
printf("Not connected to wpa_supplicant - command dropped.\n");
return -1;
}
+#if defined(CONFIG_P2P) && defined(ANDROID_P2P)
+ if (redirect_interface) {
+ char *arg;
+ arg = os_strchr(cmd, ' ');
+ if (arg) {
+ *arg++ = '\0';
+ ret = os_snprintf(_cmd, sizeof(_cmd), "%s %s %s", cmd, redirect_interface, arg);
+ }
+ else {
+ ret = os_snprintf(_cmd, sizeof(_cmd), "%s %s", cmd, redirect_interface);
+ }
+ cmd = _cmd;
+ os_free(redirect_interface);
+ redirect_interface = NULL;
+ }
+#endif
len = sizeof(buf) - 1;
ret = wpa_ctrl_request(ctrl, cmd, os_strlen(cmd), buf, &len,
wpa_cli_msg_cb);
@@ -3192,6 +3214,13 @@
printf("Unknown command '%s'\n", argv[0]);
ret = 1;
} else {
+#if defined(CONFIG_P2P) && defined(ANDROID_P2P)
+ if ( (argc >= 2) && (os_strncmp(argv[1], "interface=", 10) == 0)) {
+ redirect_interface = os_strdup(argv[1]);
+ ret = match->handler(ctrl, argc - 2, &argv[2]);
+ }
+ else
+#endif
ret = match->handler(ctrl, argc - 1, &argv[1]);
}