luci-base: migrate luci/getWirelessDevices to C plugin
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
37b6092aef
commit
a96e7a664f
3 changed files with 3 additions and 63 deletions
|
@ -51,7 +51,7 @@ var callLuciNetworkDevices = rpc.declare({
|
|||
});
|
||||
|
||||
var callLuciWirelessDevices = rpc.declare({
|
||||
object: 'luci',
|
||||
object: 'luci-rpc',
|
||||
method: 'getWirelessDevices',
|
||||
expect: { '': {} }
|
||||
});
|
||||
|
|
|
@ -249,66 +249,6 @@ local methods = {
|
|||
end
|
||||
},
|
||||
|
||||
getWirelessDevices = {
|
||||
call = function(args)
|
||||
local ubus = require "ubus".connect()
|
||||
if not ubus then
|
||||
return { error = "Unable to establish ubus connection" }
|
||||
end
|
||||
|
||||
local status = ubus:call("network.wireless", "status", {})
|
||||
if type(status) == "table" then
|
||||
local radioname, radiodata
|
||||
for radioname, radiodata in pairs(status) do
|
||||
if type(radiodata) == "table" then
|
||||
radiodata.iwinfo = ubus:call("iwinfo", "info", { device = radioname }) or {}
|
||||
radiodata.iwinfo.bitrate = nil
|
||||
radiodata.iwinfo.bssid = nil
|
||||
radiodata.iwinfo.encryption = nil
|
||||
radiodata.iwinfo.mode = nil
|
||||
radiodata.iwinfo.quality = nil
|
||||
radiodata.iwinfo.quality_max = nil
|
||||
radiodata.iwinfo.ssid = nil
|
||||
|
||||
local iwdata = nil
|
||||
|
||||
if type(radiodata.interfaces) == "table" then
|
||||
local _, interfacedata
|
||||
for _, interfacedata in ipairs(radiodata.interfaces) do
|
||||
if type(interfacedata) == "table" and
|
||||
type(interfacedata.ifname) == "string"
|
||||
then
|
||||
local iwinfo = ubus:call("iwinfo", "info", { device = interfacedata.ifname })
|
||||
|
||||
iwdata = iwdata or iwinfo
|
||||
interfacedata.iwinfo = iwinfo or {}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
radiodata.iwinfo = {}
|
||||
|
||||
local _, k, v
|
||||
for k, v in pairs(iwdata or ubus:call("iwinfo", "info", { device = radioname }) or {}) do
|
||||
if k ~= "bitrate" and k ~= "bssid" and k ~= "encryption" and
|
||||
k ~= "mode" and k ~= "quality" and k ~= "quality_max" and
|
||||
k ~= "ssid"
|
||||
then
|
||||
if type(v) == "table" then
|
||||
radiodata.iwinfo[k] = json.parse(json.stringify(v))
|
||||
else
|
||||
radiodata.iwinfo[k] = v
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return status
|
||||
end
|
||||
},
|
||||
|
||||
getConntrackHelpers = {
|
||||
call = function()
|
||||
local ok, fd = pcall(io.open, "/usr/share/fw3/helpers.conf", "r")
|
||||
|
|
|
@ -41,8 +41,8 @@
|
|||
"ubus": {
|
||||
"file": [ "list", "read", "stat" ],
|
||||
"iwinfo": [ "assoclist", "freqlist", "txpowerlist", "countrylist" ],
|
||||
"luci": [ "getDUIDHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getLEDs", "getNetworkDevices", "getUSBDevices", "getWirelessDevices", "getSwconfigFeatures", "getSwconfigPortState", "getBlockDevices", "getMountPoints" ],
|
||||
"luci-rpc": [ "getBoardJSON", "getDHCPLeases", "getHostHints" ],
|
||||
"luci": [ "getDUIDHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getLEDs", "getNetworkDevices", "getUSBDevices", "getSwconfigFeatures", "getSwconfigPortState", "getBlockDevices", "getMountPoints" ],
|
||||
"luci-rpc": [ "getBoardJSON", "getDHCPLeases", "getHostHints", "getWirelessDevices" ],
|
||||
"network.device": [ "status" ],
|
||||
"network.interface": [ "dump" ],
|
||||
"network": [ "get_proto_handlers" ],
|
||||
|
|
Loading…
Reference in a new issue