luci-base: migrate luci/getWirelessDevices to C plugin

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2019-10-31 14:42:03 +01:00
parent 37b6092aef
commit a96e7a664f
3 changed files with 3 additions and 63 deletions

View file

@ -51,7 +51,7 @@ var callLuciNetworkDevices = rpc.declare({
});
var callLuciWirelessDevices = rpc.declare({
object: 'luci',
object: 'luci-rpc',
method: 'getWirelessDevices',
expect: { '': {} }
});

View file

@ -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")

View file

@ -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" ],