gluon-luci-wifi-config: don't use luci.sys.wifi.getiwinfo()
Directly using libiwinfo is more reliable.
This commit is contained in:
parent
f4a3f73fcb
commit
fadfc64e16
@ -1,5 +1,6 @@
|
|||||||
local uci = luci.model.uci.cursor()
|
local uci = luci.model.uci.cursor()
|
||||||
local fs = require 'nixio.fs'
|
local fs = require 'nixio.fs'
|
||||||
|
local iwinfo = require 'iwinfo'
|
||||||
|
|
||||||
|
|
||||||
local function find_phy_by_path(path)
|
local function find_phy_by_path(path)
|
||||||
@ -17,9 +18,9 @@ local function find_phy_by_macaddr(macaddr)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function txpower_list(iw)
|
local function txpower_list(phy)
|
||||||
local list = iw.txpwrlist or { }
|
local list = iwinfo.nl80211.txpwrlist(phy) or { }
|
||||||
local off = tonumber(iw.txpower_offset) or 0
|
local off = tonumber(iwinfo.nl80211.txpower_offset(phy)) or 0
|
||||||
local new = { }
|
local new = { }
|
||||||
local prev = -1
|
local prev = -1
|
||||||
local _, val
|
local _, val
|
||||||
@ -93,22 +94,19 @@ for _, radio in ipairs(radios) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
if phy then
|
if phy then
|
||||||
local iw = luci.sys.wifi.getiwinfo(phy)
|
local txpowers = txpower_list(phy)
|
||||||
if iw then
|
|
||||||
local txpowers = txpower_list(iw)
|
|
||||||
|
|
||||||
if #txpowers > 1 then
|
if #txpowers > 1 then
|
||||||
local tp = p:option(ListValue, radio .. '_txpower', translate("Transmission power"))
|
local tp = p:option(ListValue, radio .. '_txpower', translate("Transmission power"))
|
||||||
tp.rmempty = true
|
tp.rmempty = true
|
||||||
tp.default = uci:get('wireless', radio, 'txpower') or 'default'
|
tp.default = uci:get('wireless', radio, 'txpower') or 'default'
|
||||||
|
|
||||||
tp:value('default', translate("(default)"))
|
tp:value('default', translate("(default)"))
|
||||||
|
|
||||||
table.sort(txpowers, function(a, b) return a.driver_dbm > b.driver_dbm end)
|
table.sort(txpowers, function(a, b) return a.driver_dbm > b.driver_dbm end)
|
||||||
|
|
||||||
for _, entry in ipairs(txpowers) do
|
for _, entry in ipairs(txpowers) do
|
||||||
tp:value(entry.driver_dbm, "%i dBm (%i mW)" % {entry.display_dbm, entry.display_mw})
|
tp:value(entry.driver_dbm, "%i dBm (%i mW)" % {entry.display_dbm, entry.display_mw})
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user