modules/admin-full: lock channel section in ap wifi config if there is a station on the same radio
This commit is contained in:
parent
017d24c724
commit
c3e8976605
1 changed files with 21 additions and 5 deletions
|
@ -114,14 +114,30 @@ local htcaps = wdev:get("ht_capab") and true or false
|
||||||
-- NanoFoo
|
-- NanoFoo
|
||||||
local nsantenna = wdev:get("antenna")
|
local nsantenna = wdev:get("antenna")
|
||||||
|
|
||||||
ch = s:taboption("general", Value, "channel", translate("Channel"))
|
-- Check whether there is a client interface on the same radio,
|
||||||
ch:value("auto", translate("auto"))
|
-- if yes, lock the channel choice as the station will dicatate the freq
|
||||||
for _, f in ipairs(iw and iw.freqlist or luci.sys.wifi.channels()) do
|
local has_sta = nil
|
||||||
if not f.restricted then
|
local _, net
|
||||||
ch:value(f.channel, "%i (%.3f GHz)" %{ f.channel, f.mhz / 1000 })
|
for _, net in ipairs(wdev:get_wifinets()) do
|
||||||
|
if net:mode() == "sta" and net:id() ~= wnet:id() then
|
||||||
|
has_sta = net
|
||||||
|
break
|
||||||
end
|
end
|
||||||
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 ------------------
|
------------------- MAC80211 Device ------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue