[PATCH] fix rogue disconnect issues w/WPA2 Enterprise networks
Dan Williams
dcbw
Tue Sep 21 20:28:20 PDT 2010
On Tue, 2010-09-21 at 16:54 +0200, Hendrik Beijeman wrote:
> Hello everyone,
>
> My university's WPA2 enterprise network kept disconnecting me after a
> random period ranging from seconds to minutes. Close examination of
> wpa_supplicant output would show these lines on the exact moment the
> connection got dropped;
>
> RTM_NEWLINK: operstate=1 ifi_flags=0x1003 ([UP])
> RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
> RTM_NEWLINK: operstate=1 ifi_flags=0x1003 ([UP])
> RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan0' added
> Wireless event: cmd=0x8b15 len=24
> Wireless event: new AP: 00:00:00:00:00:00
> Disassociation notification
> Attempt to scan while wpa_state >= WPA_ASSOCIATED aborted!
> Try BSSID 00:1a:1e:91:5f:e0 into blacklist
> CTRL-EVENT-DISCONNECTED bssid=00:1a:1e:91:5f:e0 reason=0
>
> The disassociation was being forced in wpa_driver_wext_event_wireless()
> upon receiving event SIOCGIWAP;
> disabling that piece of code (see patch below) made the problem go away
> entirely, and I'm now enjoying a stable connection.
That's clearly not the right fix though, since disconnect events are a
normal part of life. This smells more like a driver problem... Can you
get driver debugging at all?
Dan
> This is an ugly hack though, and I have absolutely no idea what I'm
> doing. If someone is interested in making a more permanent solution,
> please let me know how and if I can help,
>
> Kind regards,
> Hendrik
>
> diff against 0.7.3
>
> --- /tmp/wpa_supplicant-0.7.3/src/drivers/driver_wext.c 2010-09-07
> 17:43:39.000000000 +0200
> +++ ./wpa_supplicant-0.7.3/src/drivers/driver_wext.c 2010-09-20
> 07:46:55.413397935 +0200
> @@ -466,12 +466,14 @@ static void wpa_driver_wext_event_wirele
> os_memcmp(iwe->u.ap_addr.sa_data,
> "\x44\x44\x44\x44\x44\x44",
> ETH_ALEN) ==
> 0) {
> + /*
> os_free(drv->assoc_req_ies);
> drv->assoc_req_ies = NULL;
> os_free(drv->assoc_resp_ies);
> drv->assoc_resp_ies = NULL;
> wpa_supplicant_event(drv->ctx,
> EVENT_DISASSOC,
> - NULL);
> + NULL);*/
> + wpa_printf(MSG_DEBUG, "Ignoring disassoc
> attempt");
>
> } else {
> wpa_driver_wext_event_assoc_ies(drv);
>
> _______________________________________________
> HostAP mailing list
> HostAP at lists.shmoo.com
> http://lists.shmoo.com/mailman/listinfo/hostap
More information about the Hostap
mailing list