modules/admin-full: prevent crash in wifi model if no tx power list is available
[project/luci.git] / modules / admin-full / luasrc / model / cbi / admin_network / wifi.lua
index f602759..63c2344 100644 (file)
@@ -25,8 +25,8 @@ local tx_powers = nil
 
 m.uci:foreach("wireless", "wifi-iface",
        function(s)
-               if s.device == arg[1] and s.ifname and not iw then
-                       iw = luci.sys.wifi.getiwinfo(s.ifname)
+               if s.device == arg[1] and not iw then
+                       iw = luci.sys.wifi.getiwinfo(s.ifname or s.device)
                        tx_powers = iw.txpwrlist or { }
                end
        end)
@@ -197,7 +197,7 @@ end
 ----------------------- Interface -----------------------
 
 s = m:section(TypedSection, "wifi-iface", translate("interfaces"))
-s.addremove = true
+s.addremove = (iw and iw.mbssid_support) and true or false
 s.anonymous = true
 s:depends("device", arg[1])
 s.defaults.device = arg[1]
@@ -359,6 +359,9 @@ if hwtype == "broadcom" then
         translate("wifi_isolate_desc"))
        isolate:depends({mode="ap"})
 
+       s:taboption("advanced", Flag, "doth", "802.11h")
+       s:taboption("advanced", Flag, "wmm", translate("wifi_wmm"))
+
        bssid:depends({mode="wds"})
        bssid:depends({mode="adhoc"})
 end
@@ -460,7 +463,7 @@ key:depends("encryption", "wep")
 key:depends("encryption", "psk")
 key:depends("encryption", "psk2")
 key:depends("encryption", "psk+psk2")
-key:depends("encryption", "mixed")
+key:depends("encryption", "psk-mixed")
 key:depends({mode="ap", encryption="wpa"})
 key:depends({mode="ap", encryption="wpa2"})
 key.rmempty = true