[PATCH] fix rogue disconnect issues w/WPA2 Enterprise networks

Dan Williams dcbw at redhat.com
Tue Sep 21 23:28:20 EDT 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