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]);
 	}