Fix PMF protect disconnection on session timeout
Request the driver to send a Deauthentication frame before doing any other disconnection steps on the session timeout path. This is needed when PMF is negotiated for the association since the driver will need to find the STA entry and the PTK for it to be able to protect the robust Deauthentication frame. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
49021c1cb6
commit
0ac3876627
1 changed files with 2 additions and 3 deletions
|
@ -473,7 +473,6 @@ static void ap_handle_session_timer(void *eloop_ctx, void *timeout_ctx)
|
||||||
{
|
{
|
||||||
struct hostapd_data *hapd = eloop_ctx;
|
struct hostapd_data *hapd = eloop_ctx;
|
||||||
struct sta_info *sta = timeout_ctx;
|
struct sta_info *sta = timeout_ctx;
|
||||||
u8 addr[ETH_ALEN];
|
|
||||||
|
|
||||||
if (!(sta->flags & WLAN_STA_AUTH)) {
|
if (!(sta->flags & WLAN_STA_AUTH)) {
|
||||||
if (sta->flags & WLAN_STA_GAS) {
|
if (sta->flags & WLAN_STA_GAS) {
|
||||||
|
@ -484,6 +483,8 @@ static void ap_handle_session_timer(void *eloop_ctx, void *timeout_ctx)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hostapd_drv_sta_deauth(hapd, sta->addr,
|
||||||
|
WLAN_REASON_PREV_AUTH_NOT_VALID);
|
||||||
mlme_deauthenticate_indication(hapd, sta,
|
mlme_deauthenticate_indication(hapd, sta,
|
||||||
WLAN_REASON_PREV_AUTH_NOT_VALID);
|
WLAN_REASON_PREV_AUTH_NOT_VALID);
|
||||||
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
|
||||||
|
@ -491,9 +492,7 @@ static void ap_handle_session_timer(void *eloop_ctx, void *timeout_ctx)
|
||||||
"session timeout");
|
"session timeout");
|
||||||
sta->acct_terminate_cause =
|
sta->acct_terminate_cause =
|
||||||
RADIUS_ACCT_TERMINATE_CAUSE_SESSION_TIMEOUT;
|
RADIUS_ACCT_TERMINATE_CAUSE_SESSION_TIMEOUT;
|
||||||
os_memcpy(addr, sta->addr, ETH_ALEN);
|
|
||||||
ap_free_sta(hapd, sta);
|
ap_free_sta(hapd, sta);
|
||||||
hostapd_drv_sta_deauth(hapd, addr, WLAN_REASON_PREV_AUTH_NOT_VALID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue