mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-20 08:22:39 +00:00
mac80211: Fix reassociation by not clearing previous BSSID
We must not clear the previous BSSID when roaming to another AP within the same ESS for reassociation to be used properly. It is fine to clear this when the SSID changes, so let's move the code into ieee80211_sta_set_ssid(). Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
4b4698c443
commit
a299542e97
@ -1888,8 +1888,6 @@ int ieee80211_sta_commit(struct ieee80211_sub_if_data *sdata)
|
||||
{
|
||||
struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
|
||||
|
||||
ifmgd->flags &= ~IEEE80211_STA_PREV_BSSID_SET;
|
||||
|
||||
if (ifmgd->ssid_len)
|
||||
ifmgd->flags |= IEEE80211_STA_SSID_SET;
|
||||
else
|
||||
@ -1908,6 +1906,10 @@ int ieee80211_sta_set_ssid(struct ieee80211_sub_if_data *sdata, char *ssid, size
|
||||
ifmgd = &sdata->u.mgd;
|
||||
|
||||
if (ifmgd->ssid_len != len || memcmp(ifmgd->ssid, ssid, len) != 0) {
|
||||
/*
|
||||
* Do not use reassociation if SSID is changed (different ESS).
|
||||
*/
|
||||
ifmgd->flags &= ~IEEE80211_STA_PREV_BSSID_SET;
|
||||
memset(ifmgd->ssid, 0, sizeof(ifmgd->ssid));
|
||||
memcpy(ifmgd->ssid, ssid, len);
|
||||
ifmgd->ssid_len = len;
|
||||
|
Loading…
Reference in New Issue
Block a user