luci-mod-admin-full: new hostapd functionality for 80211w/r detection
authorHannu Nyman <hannu.nyman@iki.fi>
Tue, 28 Feb 2017 12:16:19 +0000 (14:16 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Wed, 1 Mar 2017 08:20:30 +0000 (10:20 +0200)
Use the new hostapd functionality (in LEDE) to detect 802.11r and 802.11w
more properly. Leave the old logic in place for Openwrt.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(partial cherry pick from commit b0943391d84546d7161709ef521410b9cfd21df9)

modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/wifi.lua

index 709389ac4f78cc2be41d82b7126b0b67627e8e6f..222b3627316fdd37b9cd8885d01e2a7103461895 100644 (file)
@@ -901,8 +901,8 @@ end
 
 if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
 
-       -- Probe EAP support as a proxy for determining if 802.11r support is present
-       local has_ap_eap  = (os.execute("hostapd -veap >/dev/null 2>/dev/null") == 0)
+       -- Probe 802.11r support (and EAP support as a proxy for Openwrt)
+       local has_80211r = (os.execute("hostapd -v11r 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
 
        ieee80211r = s:taboption("encryption", Flag, "ieee80211r",
                translate("802.11r Fast Transition"),
@@ -912,7 +912,7 @@ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
        ieee80211r:depends({mode="ap", encryption="wpa2"})
        ieee80211r:depends({mode="ap-wds", encryption="wpa"})
        ieee80211r:depends({mode="ap-wds", encryption="wpa2"})
-       if has_ap_eap then
+       if has_80211r then
                ieee80211r:depends({mode="ap", encryption="psk"})
                ieee80211r:depends({mode="ap", encryption="psk2"})
                ieee80211r:depends({mode="ap", encryption="psk-mixed"})
@@ -1125,8 +1125,8 @@ end
 
 -- ieee802.11w options
 if hwtype == "mac80211" then
-   local has_ap_eap  = (os.execute("hostapd -veap >/dev/null 2>/dev/null") == 0)
-   if has_ap_eap then
+   local has_80211w = (os.execute("hostapd -v11w 2>/dev/null || hostapd -veap 2>/dev/null") == 0)
+   if has_80211w then
        ieee80211w = s:taboption("encryption", ListValue, "ieee80211w",
                translate("802.11w Management Frame Protection"),
                translate("Requires the 'full' version of wpad/hostapd " ..