AP: Fix Deauth/Disassoc TX status timeout handling
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 15 Jan 2016 17:28:58 +0000 (19:28 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 15 Jan 2016 17:32:49 +0000 (19:32 +0200)
commit9e8fde21348bbdcd8c6d9892820106f93d7738f1
treea22885164fb80f39f117e75b46699332a0e683fa
parent269f9d5d100b3963c6b94722da27920e5dca8a8d
AP: Fix Deauth/Disassoc TX status timeout handling

The ap_sta_deauth_cb and ap_sta_disassoc_cb eloop timeouts are used to
clear a disconnecting STA from the kernel driver if the STA did not ACK
the Deauthentication/Disassociation frame from the AP within two
seconds. However, it was possible for a STA to not ACK such a frame,
e.g., when the disconnection happened due to hostapd pruning old
associations from other BSSes and the STA was not on the old channel
anymore. If that same STA then started a new authentication/association
with the BSS, the two second timeout could trigger during this new
association and result in the STA entry getting removed from the kernel.

Fix this by canceling these eloop timeouts when receiving an indication
of a new authentication or association.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/ap/ap_mlme.c
src/ap/hostapd.c
src/ap/sta_info.c
src/ap/sta_info.h