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({
|
var callLuciWirelessDevices = rpc.declare({
|
||||||
object: 'luci',
|
object: 'luci-rpc',
|
||||||
method: 'getWirelessDevices',
|
method: 'getWirelessDevices',
|
||||||
expect: { '': {} }
|
expect: { '': {} }
|
||||||
});
|
});
|
||||||
|
|
|
@ -249,66 +249,6 @@ local methods = {
|
||||||
end
|
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 = {
|
getConntrackHelpers = {
|
||||||
call = function()
|
call = function()
|
||||||
local ok, fd = pcall(io.open, "/usr/share/fw3/helpers.conf", "r")
|
local ok, fd = pcall(io.open, "/usr/share/fw3/helpers.conf", "r")
|
||||||
|
|
|
@ -41,8 +41,8 @@
|
||||||
"ubus": {
|
"ubus": {
|
||||||
"file": [ "list", "read", "stat" ],
|
"file": [ "list", "read", "stat" ],
|
||||||
"iwinfo": [ "assoclist", "freqlist", "txpowerlist", "countrylist" ],
|
"iwinfo": [ "assoclist", "freqlist", "txpowerlist", "countrylist" ],
|
||||||
"luci": [ "getDUIDHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getLEDs", "getNetworkDevices", "getUSBDevices", "getWirelessDevices", "getSwconfigFeatures", "getSwconfigPortState", "getBlockDevices", "getMountPoints" ],
|
"luci": [ "getDUIDHints", "getIfaddrs", "getInitList", "getLocaltime", "getTimezones", "getLEDs", "getNetworkDevices", "getUSBDevices", "getSwconfigFeatures", "getSwconfigPortState", "getBlockDevices", "getMountPoints" ],
|
||||||
"luci-rpc": [ "getBoardJSON", "getDHCPLeases", "getHostHints" ],
|
"luci-rpc": [ "getBoardJSON", "getDHCPLeases", "getHostHints", "getWirelessDevices" ],
|
||||||
"network.device": [ "status" ],
|
"network.device": [ "status" ],
|
||||||
"network.interface": [ "dump" ],
|
"network.interface": [ "dump" ],
|
||||||
"network": [ "get_proto_handlers" ],
|
"network": [ "get_proto_handlers" ],
|
||||||
|
|
Loading…
Reference in a new issue