File wpa_supplicant-really_disassociate.patch of Package wpa_supplicant

X-Git-Url: http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blobdiff_plain;f=src%2Fdrivers%2Fdriver_wext.c;h=9f19b5a23c02aca24e74cb2f45c1cf850440ae3d;hp=631c63d0c1a6eebe441fa68f6f10f7bc7b521ba3;hb=b965fa729404b6ac602c716968179bcb510204ae;hpb=34a6c94178a1d0c26d6eaf9e2dc0c848a798afd2

diff --git a/src/drivers/driver_wext.c b/src/drivers/driver_wext.c
index 631c63d..9f19b5a 100644
--- a/src/drivers/driver_wext.c
+++ b/src/drivers/driver_wext.c
@@ -1911,9 +1911,21 @@ static int wpa_driver_wext_disassociate(void *priv, const u8 *addr,
 					int reason_code)
 {
 	struct wpa_driver_wext_data *drv = priv;
+	const u8 null_bssid[ETH_ALEN] = { 0, 0, 0, 0, 0, 0 };
+	u8 ssid[32];
+	int ret, i;
+
 	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);
+
+	wpa_driver_wext_set_bssid(drv, null_bssid);
+
+	for (i = 0; i < 32; i++)
+		ssid[i] = rand() & 0xFF;
+	wpa_driver_wext_set_ssid(drv, ssid, 32);
+
+	return ret;
 }
 
 
openSUSE Build Service is sponsored by