gluon-status-page: use UCI + iwinfo to get channel information
The network.wireless status ubus call only returns the configured channel from UCI, breaking the status page in outdoor mode, where the configuration contains 'auto' instead of a number. Fixes:0d3fa6b59b
("gluon-status-page: use ubus to get radio channels") Closes #2336 (cherry picked from commit201e1597b1
)
This commit is contained in:
parent
b623378a5f
commit
ae1023ac3a
@ -1,7 +1,11 @@
|
|||||||
<%-
|
<%-
|
||||||
|
local iwinfo = require 'iwinfo'
|
||||||
local ubus = require 'ubus'
|
local ubus = require 'ubus'
|
||||||
local unistd = require 'posix.unistd'
|
local unistd = require 'posix.unistd'
|
||||||
local util = require 'gluon.util'
|
local util = require 'gluon.util'
|
||||||
|
local wireless = require 'gluon.wireless'
|
||||||
|
|
||||||
|
local uci = require('simple-uci').cursor()
|
||||||
|
|
||||||
local translations = {}
|
local translations = {}
|
||||||
local site_i18n = i18n 'gluon-site'
|
local site_i18n = i18n 'gluon-site'
|
||||||
@ -35,22 +39,22 @@
|
|||||||
return interfaces
|
return interfaces
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_radios(uconn)
|
local function get_radios()
|
||||||
local radios = uconn:call("network.wireless", "status", {})
|
|
||||||
local ret = {}
|
local ret = {}
|
||||||
|
|
||||||
for radio, info in pairs(radios) do
|
wireless.foreach_radio(uci, function(radio)
|
||||||
if info.up then
|
local channel = iwinfo.nl80211.channel(wireless.find_phy(radio))
|
||||||
|
if channel then
|
||||||
table.insert(ret, {
|
table.insert(ret, {
|
||||||
name = radio,
|
name = radio['.name'],
|
||||||
channel = info.config.channel,
|
channel = channel,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end)
|
||||||
|
|
||||||
table.sort(ret, function(a, b)
|
table.sort(ret, function(a, b)
|
||||||
return a.name < b.name
|
return a.name < b.name
|
||||||
end)
|
end)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -72,10 +76,11 @@
|
|||||||
end
|
end
|
||||||
|
|
||||||
local interfaces = get_interfaces(uconn)
|
local interfaces = get_interfaces(uconn)
|
||||||
local radios = get_radios(uconn)
|
|
||||||
|
|
||||||
ubus.close(uconn)
|
ubus.close(uconn)
|
||||||
|
|
||||||
|
local radios = get_radios()
|
||||||
|
|
||||||
local function sorted(t)
|
local function sorted(t)
|
||||||
t = {unpack(t)}
|
t = {unpack(t)}
|
||||||
table.sort(t)
|
table.sort(t)
|
||||||
|
Loading…
Reference in New Issue
Block a user