From 2156b3dec670da4b7076d4f4f84319110efa403f Mon Sep 17 00:00:00 2001 From: zxystd <1051244836@qq.com> Date: Fri, 31 Dec 2021 22:38:03 +0800 Subject: [PATCH] AirportItlwm: Disable MFP capability flag for airport which avoids adding MFP capable flag on association routine, but we don't really support MFP in the drivers. This patch fix the performance issue on connecting WPA2/WPA3 mixed network(11w optional). --- AirportItlwm/AirportItlwm.cpp | 4 ++-- AirportItlwm/AirportSTAIOCTL.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/AirportItlwm/AirportItlwm.cpp b/AirportItlwm/AirportItlwm.cpp index dfd368465..c0c5cd558 100644 --- a/AirportItlwm/AirportItlwm.cpp +++ b/AirportItlwm/AirportItlwm.cpp @@ -185,7 +185,7 @@ void AirportItlwm::associateSSID(uint8_t *ssid, uint32_t ssid_len, const struct wpa.i_protos = IEEE80211_WPA_PROTO_WPA1 | IEEE80211_WPA_PROTO_WPA2; } - if (authtype_upper & (APPLE80211_AUTHTYPE_WPA_PSK | APPLE80211_AUTHTYPE_WPA2_PSK)) { + if (authtype_upper & (APPLE80211_AUTHTYPE_WPA_PSK | APPLE80211_AUTHTYPE_WPA2_PSK | APPLE80211_AUTHTYPE_SHA256_PSK)) { XYLog("%s %d\n", __FUNCTION__, __LINE__); wpa.i_akms |= IEEE80211_WPA_AKM_PSK | IEEE80211_WPA_AKM_SHA256_PSK; wpa.i_enabled = 1; @@ -193,7 +193,7 @@ void AirportItlwm::associateSSID(uint8_t *ssid, uint32_t ssid_len, const struct ic->ic_flags |= IEEE80211_F_PSK; ieee80211_ioctl_setwpaparms(ic, &wpa); } - if (authtype_upper & (APPLE80211_AUTHTYPE_WPA | APPLE80211_AUTHTYPE_WPA2)) { + if (authtype_upper & (APPLE80211_AUTHTYPE_WPA | APPLE80211_AUTHTYPE_WPA2 | APPLE80211_AUTHTYPE_SHA256_8021X)) { XYLog("%s %d\n", __FUNCTION__, __LINE__); wpa.i_akms |= IEEE80211_WPA_AKM_8021X | IEEE80211_WPA_AKM_SHA256_8021X; wpa.i_enabled = 1; diff --git a/AirportItlwm/AirportSTAIOCTL.cpp b/AirportItlwm/AirportSTAIOCTL.cpp index ead973438..6bce6c775 100644 --- a/AirportItlwm/AirportSTAIOCTL.cpp +++ b/AirportItlwm/AirportSTAIOCTL.cpp @@ -608,7 +608,12 @@ getCARD_CAPABILITIES(OSObject *object, cd->capabilities[4] = 0xAD; cd->capabilities[5] = 0x80;//isCntryDefaultSupported cd->capabilities[5] |= 0x0C; - cd->capabilities[6] = 0x8D; + cd->capabilities[6] = ( +// 1 | //MFP capable + 0x8 | + 0x4 | + 0x80 + ); cd->capabilities[7] = 0x84; // This byte contains Apple Watch unlock //cd->capabilities[8] = 0x40; //cd->capabilities[8] |= 8;//dfs white list