wpa_supplicant/wpa-supplicant-0.6.7-really-disassoc.patch

32 lines
853 B
Diff

diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index 631c63d..fb9d5c6 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -1911,9 +1911,24 @@ static int wpa_driver_wext_disassociate(void *priv, const u8 *addr,
int reason_code)
{
struct wpa_driver_wext_data *drv = priv;
+ u8 ssid[32];
+ int ret;
+
wpa_printf(MSG_DEBUG, "%s", __FUNCTION__);
- return wpa_driver_wext_mlme(drv, addr, IW_MLME_DISASSOC,
- reason_code);
+
+ ret = wpa_driver_wext_mlme(drv, addr, IW_MLME_DISASSOC,
+ reason_code);
+ if (ret == 0) {
+ const u8 null_bssid[ETH_ALEN] = { 0, 0, 0, 0, 0, 0 };
+
+ ret = wpa_driver_wext_set_bssid(drv, null_bssid);
+
+ for (ret = 0; ret < 32; ret++)
+ ssid[ret] = rand() & 0xFF;
+ ret = wpa_driver_wext_set_ssid(drv, ssid, 32);
+ }
+
+ return ret;
}