wext: Clean up the disconnect BSSID/SSID clearing
This commit is contained in:
parent
48f8e03622
commit
724950836f
1 changed files with 16 additions and 11 deletions
|
@ -1840,31 +1840,36 @@ static void wpa_driver_wext_disconnect(struct wpa_driver_wext_data *drv)
|
|||
}
|
||||
|
||||
if (iwr.u.mode == IW_MODE_INFRA) {
|
||||
/* Clear the BSSID selection */
|
||||
if (wpa_driver_wext_set_bssid(drv, null_bssid) < 0) {
|
||||
wpa_printf(MSG_DEBUG, "WEXT: Failed to clear BSSID "
|
||||
"selection on disconnect");
|
||||
}
|
||||
|
||||
if (drv->cfg80211) {
|
||||
/*
|
||||
* cfg80211 supports SIOCSIWMLME commands, so there is
|
||||
* no need for the random SSID hack, but clear the
|
||||
* BSSID and SSID.
|
||||
* SSID.
|
||||
*/
|
||||
if (wpa_driver_wext_set_bssid(drv, null_bssid) < 0 ||
|
||||
wpa_driver_wext_set_ssid(drv, (u8 *) "", 0) < 0) {
|
||||
if (wpa_driver_wext_set_ssid(drv, (u8 *) "", 0) < 0) {
|
||||
wpa_printf(MSG_DEBUG, "WEXT: Failed to clear "
|
||||
"to disconnect");
|
||||
"SSID on disconnect");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Clear the BSSID selection and set a random SSID to make sure
|
||||
* the driver will not be trying to associate with something
|
||||
* even if it does not understand SIOCSIWMLME commands (or
|
||||
* tries to associate automatically after deauth/disassoc).
|
||||
* Set a random SSID to make sure the driver will not be trying
|
||||
* to associate with something even if it does not understand
|
||||
* SIOCSIWMLME commands (or tries to associate automatically
|
||||
* after deauth/disassoc).
|
||||
*/
|
||||
for (i = 0; i < 32; i++)
|
||||
ssid[i] = rand() & 0xFF;
|
||||
if (wpa_driver_wext_set_bssid(drv, null_bssid) < 0 ||
|
||||
wpa_driver_wext_set_ssid(drv, ssid, 32) < 0) {
|
||||
if (wpa_driver_wext_set_ssid(drv, ssid, 32) < 0) {
|
||||
wpa_printf(MSG_DEBUG, "WEXT: Failed to set bogus "
|
||||
"BSSID/SSID to disconnect");
|
||||
"SSID to disconnect");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue