From: Arend van Spriel Date: Sat, 20 Jul 2013 14:52:32 +0000 (+0300) Subject: TDLS: Tear down TDLS using wpas_drv_tlds_oper() if not external X-Git-Tag: aosp-kk-from-upstream~123 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4ed8d954dd4f714ac648b25fc3ec260592fda41b;p=thirdparty%2Fhostap.git TDLS: Tear down TDLS using wpas_drv_tlds_oper() if not external When the device indicates to take care of TDLS operations the TDLS setup is done calling wpas_drv_tdls_oper(). This patch does a similar thing for the teardown. This fixes failure of teardown: "TDLS: Could not find peer for link Teardown" Signed-hostap: Arend van Spriel --- diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index a9c771546..81ca37d75 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -577,6 +577,7 @@ static int wpa_supplicant_ctrl_iface_tdls_teardown( struct wpa_supplicant *wpa_s, char *addr) { u8 peer[ETH_ALEN]; + int ret; if (hwaddr_aton(addr, peer)) { wpa_printf(MSG_DEBUG, "CTRL_IFACE TDLS_TEARDOWN: invalid " @@ -587,8 +588,14 @@ static int wpa_supplicant_ctrl_iface_tdls_teardown( wpa_printf(MSG_DEBUG, "CTRL_IFACE TDLS_TEARDOWN " MACSTR, MAC2STR(peer)); - return wpa_tdls_teardown_link(wpa_s->wpa, peer, - WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED); + if (wpa_tdls_is_external_setup(wpa_s->wpa)) + ret = wpa_tdls_teardown_link( + wpa_s->wpa, peer, + WLAN_REASON_TDLS_TEARDOWN_UNSPECIFIED); + else + ret = wpa_drv_tdls_oper(wpa_s, TDLS_TEARDOWN, peer); + + return ret; } #endif /* CONFIG_TDLS */