From a96e7a664fa9ddd6de25f1a8d114cfd6d33d83e6 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 31 Oct 2019 14:42:03 +0100 Subject: [PATCH] luci-base: migrate luci/getWirelessDevices to C plugin Signed-off-by: Jo-Philipp Wich --- .../htdocs/luci-static/resources/network.js | 2 +- modules/luci-base/root/usr/libexec/rpcd/luci | 60 ------------------- .../root/usr/share/rpcd/acl.d/luci-base.json | 4 +- 3 files changed, 3 insertions(+), 63 deletions(-) diff --git a/modules/luci-base/htdocs/luci-static/resources/network.js b/modules/luci-base/htdocs/luci-static/resources/network.js index ed14af4887..eaa4b3bb9f 100644 --- a/modules/luci-base/htdocs/luci-static/resources/network.js +++ b/modules/luci-base/htdocs/luci-static/resources/network.js @@ -51,7 +51,7 @@ var callLuciNetworkDevices = rpc.declare({ }); var callLuciWirelessDevices = rpc.declare({ - object: 'luci', + object: 'luci-rpc', method: 'getWirelessDevices', expect: { '': {} } }); diff --git a/modules/luci-base/root/usr/libexec/rpcd/luci b/modules/luci-base/root/usr/libexec/rpcd/luci index 8a3e0b0c0f..da36270a17 100755 --- a/modules/luci-base/root/usr/libexec/rpcd/luci +++ b/modules/luci-base/root/usr/libexec/rpcd/luci @@ -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") diff --git a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json index 6f08cd7df9..912707a844 100644 --- a/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json +++ b/modules/luci-base/root/usr/share/rpcd/acl.d/luci-base.json @@ -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" ], -- 2.30.2