TDLS: Disable links during AP deauth in external flow

When de-authenticating from the AP, disable each TDLS link after
sending the teardown packet. Postpone the reset of the peer state
data until after the link disable request.

Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
This commit is contained in:
Arik Nemtsov 2014-04-24 08:45:37 +03:00 committed by Jouni Malinen
parent b19719aa77
commit c04b4651f7

View file

@ -762,9 +762,6 @@ skip_ies:
reason_code, 0, rbuf, pos - rbuf); reason_code, 0, rbuf, pos - rbuf);
os_free(rbuf); os_free(rbuf);
/* clear the Peerkey statemachine */
wpa_tdls_peer_free(sm, peer);
return 0; return 0;
} }
@ -2592,7 +2589,7 @@ void wpa_tdls_teardown_peers(struct wpa_sm *sm)
wpa_printf(MSG_DEBUG, "TDLS: Tear down peer " MACSTR, wpa_printf(MSG_DEBUG, "TDLS: Tear down peer " MACSTR,
MAC2STR(peer->addr)); MAC2STR(peer->addr));
if (sm->tdls_external_setup) if (sm->tdls_external_setup)
wpa_tdls_send_teardown(sm, peer->addr, wpa_tdls_do_teardown(sm, peer,
WLAN_REASON_DEAUTH_LEAVING); WLAN_REASON_DEAUTH_LEAVING);
else else
wpa_sm_tdls_oper(sm, TDLS_TEARDOWN, peer->addr); wpa_sm_tdls_oper(sm, TDLS_TEARDOWN, peer->addr);