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