+ bssid:depends({mode="wds"})
+ bssid:depends({mode="adhoc"})
+ end
+
+
+ ----------------------- HostAP Interface ---------------------
+
+ if hwtype == "prism2" then
+ mode:value("wds", translate("a_w_wds"))
+ mode:value("monitor", translate("a_w_monitor"))
+
+ hidden = s:taboption("general", Flag, "hidden", translate("wifi_hidden"))
+ hidden:depends({mode="ap"})
+ hidden:depends({mode="adhoc"})
+ hidden:depends({mode="wds"})
+
+ bssid:depends({mode="sta"})
+
+ mp = s:taboption("macfilter", ListValue, "macpolicy", translate("wifi_macpolicy"))
+ mp:value("", translate("disable"))
+ mp:value("deny", translate("wifi_whitelist"))
+ mp:value("allow", translate("wifi_blacklist"))
+ ml = s:taboption("macfilter", DynamicList, "maclist", translate("wifi_maclist"))
+ ml:depends({macpolicy="allow"})
+ ml:depends({macpolicy="deny"})
+
+ s:taboption("advanced", Value, "rate", translate("wifi_rate"))
+ s:taboption("advanced", Value, "frag", translate("wifi_frag"))
+ s:taboption("advanced", Value, "rts", translate("wifi_rts"))
+ end
+
+
+ ------------------- WiFI-Encryption -------------------
+
+ encr = s:taboption("encryption", ListValue, "encryption", translate("encryption"))
+ encr.override_values = true
+ encr:depends({mode="ap"})
+ encr:depends({mode="sta"})
+ encr:depends({mode="adhoc"})
+ encr:depends({mode="ahdemo"})
+ encr:depends({mode="ap-wds"})
+ encr:depends({mode="sta-wds"})
+ encr:depends({mode="mesh"})
+
+ encr:value("none", "No Encryption")
+ encr:value("wep", "WEP")
+
+ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then
+ local supplicant = fs.access("/usr/sbin/wpa_supplicant")
+ local hostapd = fs.access("/usr/sbin/hostapd")
+
+ if hostapd and supplicant then
+ encr:value("psk", "WPA-PSK")
+ encr:value("psk2", "WPA2-PSK")
+ encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode")
+ encr:value("wpa", "WPA-EAP", {mode="ap"}, {mode="sta"}, {mode="ap-wds"}, {mode="sta-wds"})
+ encr:value("wpa2", "WPA2-EAP", {mode="ap"}, {mode="sta"})
+ elseif hostapd and not supplicant then
+ encr:value("psk", "WPA-PSK", {mode="ap"}, {mode="ap-wds"}, {mode="adhoc"}, {mode="ahdemo"})
+ encr:value("psk2", "WPA2-PSK", {mode="ap"}, {mode="ap-wds"}, {mode="adhoc"}, {mode="ahdemo"})
+ encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="ap"}, {mode="ap-wds"}, {mode="adhoc"}, {mode="ahdemo"})
+ encr:value("wpa", "WPA-EAP", {mode="ap"}, {mode="ap-wds"})
+ encr:value("wpa2", "WPA2-EAP", {mode="ap"}, {mode="ap-wds"})
+ encr.description = translate("wifi_wpareq")
+ elseif not hostapd and supplicant then
+ encr:value("psk", "WPA-PSK", {mode="sta"}, {mode="sta-wds"})
+ encr:value("psk2", "WPA2-PSK", {mode="sta"}, {mode="sta-wds"})
+ encr:value("psk-mixed", "WPA-PSK/WPA2-PSK Mixed Mode", {mode="sta"}, {mode="sta-wds"})
+ encr:value("wpa", "WPA-EAP", {mode="sta"}, {mode="sta-wds"})
+ encr:value("wpa2", "WPA2-EAP", {mode="sta"}, {mode="sta-wds"})
+ encr.description = translate("wifi_wpareq")
+ else
+ encr.description = translate("wifi_wpareq")
+ end
+ elseif hwtype == "broadcom" then