summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua26
1 files changed, 21 insertions, 5 deletions
diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
index f5d6cf476b..dfca7d27d9 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
@@ -114,14 +114,30 @@ local htcaps = wdev:get("ht_capab") and true or false
-- NanoFoo
local nsantenna = wdev:get("antenna")
-ch = s:taboption("general", Value, "channel", translate("Channel"))
-ch:value("auto", translate("auto"))
-for _, f in ipairs(iw and iw.freqlist or luci.sys.wifi.channels()) do
- if not f.restricted then
- ch:value(f.channel, "%i (%.3f GHz)" %{ f.channel, f.mhz / 1000 })
+-- Check whether there is a client interface on the same radio,
+-- if yes, lock the channel choice as the station will dicatate the freq
+local has_sta = nil
+local _, net
+for _, net in ipairs(wdev:get_wifinets()) do
+ if net:mode() == "sta" and net:id() ~= wnet:id() then
+ has_sta = net
+ break
end
end
+if has_sta then
+ ch = s:taboption("general", DummyValue, "choice", translate("Channel"))
+ ch.value = translatef("Locked to channel %d used by %s",
+ has_sta:channel(), has_sta:shortname())
+else
+ ch = s:taboption("general", Value, "channel", translate("Channel"))
+ ch:value("auto", translate("auto"))
+ for _, f in ipairs(iw and iw.freqlist or luci.sys.wifi.channels()) do
+ if not f.restricted then
+ ch:value(f.channel, "%i (%.3f GHz)" %{ f.channel, f.mhz / 1000 })
+ end
+ end
+end
------------------- MAC80211 Device ------------------