wpa_supplicant: Restore permanent MAC address on reassociation
With mac_addr=0 and preassoc_mac_addr=1, the permanent MAC address should be restored for association. Previously this did not happen when reassociating to the same ESS. Signed-off-by: Benjamin Richter <br@waldteufel.eu>
This commit is contained in:
parent
e3e2fe3a42
commit
5d30f927ea
1 changed files with 4 additions and 2 deletions
|
@ -1691,11 +1691,13 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
||||||
wmm_ac_save_tspecs(wpa_s);
|
wmm_ac_save_tspecs(wpa_s);
|
||||||
wpa_s->reassoc_same_bss = 1;
|
wpa_s->reassoc_same_bss = 1;
|
||||||
}
|
}
|
||||||
} else if (rand_style > 0) {
|
}
|
||||||
|
|
||||||
|
if (rand_style > 0 && !wpa_s->reassoc_same_ess) {
|
||||||
if (wpas_update_random_addr(wpa_s, rand_style) < 0)
|
if (wpas_update_random_addr(wpa_s, rand_style) < 0)
|
||||||
return;
|
return;
|
||||||
wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
|
wpa_sm_pmksa_cache_flush(wpa_s->wpa, ssid);
|
||||||
} else if (wpa_s->mac_addr_changed) {
|
} else if (rand_style == 0 && wpa_s->mac_addr_changed) {
|
||||||
if (wpa_drv_set_mac_addr(wpa_s, NULL) < 0) {
|
if (wpa_drv_set_mac_addr(wpa_s, NULL) < 0) {
|
||||||
wpa_msg(wpa_s, MSG_INFO,
|
wpa_msg(wpa_s, MSG_INFO,
|
||||||
"Could not restore permanent MAC address");
|
"Could not restore permanent MAC address");
|
||||||
|
|
Loading…
Reference in a new issue