TDLS: Provide external control to specify the peers for setup (DO NOT MERGE)

Bug: 11631777

Change-Id: I3fbcf3cef4a6a4d894f78dd3dbe4757831e4fc56
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
index bafe1e9..6335605 100644
--- a/wpa_supplicant/ctrl_iface.c
+++ b/wpa_supplicant/ctrl_iface.c
@@ -568,6 +568,11 @@
 	wpa_printf(MSG_DEBUG, "CTRL_IFACE TDLS_SETUP " MACSTR,
 		   MAC2STR(peer));
 
+	if ((wpa_s->conf->tdls_external_control) &&
+	     wpa_tdls_is_external_setup(wpa_s->wpa)) {
+		return wpa_drv_tdls_oper(wpa_s, TDLS_SETUP, peer);
+	}
+
 	wpa_tdls_remove(wpa_s->wpa, peer);
 
 	if (wpa_tdls_is_external_setup(wpa_s->wpa))
@@ -594,6 +599,11 @@
 	wpa_printf(MSG_DEBUG, "CTRL_IFACE TDLS_TEARDOWN " MACSTR,
 		   MAC2STR(peer));
 
+	if ((wpa_s->conf->tdls_external_control) &&
+	     wpa_tdls_is_external_setup(wpa_s->wpa)) {
+		return wpa_drv_tdls_oper(wpa_s, TDLS_TEARDOWN, peer);
+	}
+
 	if (wpa_tdls_is_external_setup(wpa_s->wpa))
 		ret = wpa_tdls_teardown_link(
 			wpa_s->wpa, peer,