luci-mod-admin-full: new hostapd functionality for 80211w/r detection

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 b0943391d8)
This commit is contained in:
Hannu Nyman 2017-02-28 14:16:19 +02:00
parent 5be88e0c3e
commit 4d8b1352bf

View file

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