WPS 2.0: Disable WPS if ignore_broadcast_ssid or WEP is used
authorJouni Malinen <jouni.malinen@atheros.com>
Fri, 24 Sep 2010 22:17:03 +0000 (15:17 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 24 Sep 2010 22:17:03 +0000 (15:17 -0700)
These combinations are disallowed in WPS 2.0 (and do not work well
(or at all) with many deployed WPS 1.0 devices either).

hostapd/config_file.c

index 5ff6add..a6a3e5c 100644 (file)
@@ -1098,6 +1098,20 @@ static int hostapd_config_check_bss(struct hostapd_bss_config *bss,
        }
 #endif /* CONFIG_IEEE80211N */
 
+#ifdef CONFIG_WPS2
+       if (bss->wps_state && bss->ignore_broadcast_ssid) {
+               wpa_printf(MSG_INFO, "WPS: ignore_broadcast_ssid "
+                          "configuration forced WPS to be disabled");
+               bss->wps_state = 0;
+       }
+
+       if (bss->wps_state && bss->ssid.wep.keys_set && bss->wpa == 0) {
+               wpa_printf(MSG_INFO, "WPS: WEP configuration forced WPS to be "
+                          "disabled");
+               bss->wps_state = 0;
+       }
+#endif /* CONFIG_WPS2 */
+
        return 0;
 }