From 9af850cef2007cabe1bbffad3ef1d2b13396832d Mon Sep 17 00:00:00 2001 From: Darren Li Date: Tue, 22 Feb 2022 00:34:47 -0600 Subject: [PATCH 18/60] wpa_supplicant: suppress deauth for PMKSA caching disabled wpa_supplicant: Need a command/parameter suppress deauth for PMKSA caching disabled Upstream-Status: Inappropriate [DEY specific] Signed-off-by: Darren Li --- src/rsn_supp/wpa.c | 5 ++++- src/rsn_supp/wpa.h | 1 + src/rsn_supp/wpa_i.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c index 92ab7d561..1f6401ef3 100644 --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c @@ -2904,7 +2904,9 @@ static void wpa_sm_pmksa_free_cb(struct rsn_pmksa_cache_entry *entry, if (deauth) { sm->pmk_len = 0; os_memset(sm->pmk, 0, sizeof(sm->pmk)); - wpa_sm_deauthenticate(sm, WLAN_REASON_UNSPECIFIED); + if (!sm->suppress_deauth_no_pmksa) { + wpa_sm_deauthenticate(sm, WLAN_REASON_UNSPECIFIED); + } } } @@ -3240,6 +3242,7 @@ void wpa_sm_set_config(struct wpa_sm *sm, struct rsn_supp_config *config) } #endif /* CONFIG_FILS */ sm->beacon_prot = config->beacon_prot; + sm->suppress_deauth_no_pmksa = config->suppress_deauth_no_pmksa; } else { sm->network_ctx = NULL; sm->allowed_pairwise_cipher = 0; diff --git a/src/rsn_supp/wpa.h b/src/rsn_supp/wpa.h index 41daaae2c..2cd1826e4 100644 --- a/src/rsn_supp/wpa.h +++ b/src/rsn_supp/wpa.h @@ -136,6 +136,7 @@ struct rsn_supp_config { const u8 *fils_cache_id; int beacon_prot; bool force_kdk_derivation; + int suppress_deauth_no_pmksa; }; #ifndef CONFIG_NO_WPA diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h index 6cdce321d..3989c9ab3 100644 --- a/src/rsn_supp/wpa_i.h +++ b/src/rsn_supp/wpa_i.h @@ -216,6 +216,7 @@ struct wpa_sm { struct wpabuf *dpp_z; int dpp_pfs; #endif /* CONFIG_DPP2 */ + int suppress_deauth_no_pmksa; }; -- 2.17.1