HS 2.0R2: Disable full ESS for as a workaround for per-BSS issues
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 9 Aug 2013 21:04:50 +0000 (00:04 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 25 Feb 2014 23:24:24 +0000 (01:24 +0200)
For now, disable full ESS since some drivers may not support disabling
per BSS.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

wpa_supplicant/hs20_supplicant.c

index 186faa5..2cacb42 100644 (file)
@@ -872,6 +872,19 @@ void hs20_rx_deauth_imminent_notice(struct wpa_supplicant *wpa_s, u8 code,
        if (code == HS20_DEAUTH_REASON_CODE_BSS) {
                wpa_printf(MSG_DEBUG, "HS 2.0: Add BSS to blacklist");
                wpa_blacklist_add(wpa_s, wpa_s->bssid);
+               /* TODO: For now, disable full ESS since some drivers may not
+                * support disabling per BSS. */
+               if (wpa_s->current_ssid) {
+                       struct os_time now;
+                       os_get_time(&now);
+                       if (now.sec + reauth_delay <=
+                           wpa_s->current_ssid->disabled_until.sec)
+                               return;
+                       wpa_printf(MSG_DEBUG, "HS 2.0: Disable network for %u seconds (BSS)",
+                                  reauth_delay);
+                       wpa_s->current_ssid->disabled_until.sec =
+                               now.sec + reauth_delay;
+               }
        }
 
        if (code == HS20_DEAUTH_REASON_CODE_ESS && wpa_s->current_ssid) {