diff options
-rw-r--r-- | libs/sys/luasrc/sys.lua | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index d57077026f..1708a27355 100644 --- a/libs/sys/luasrc/sys.lua +++ b/libs/sys/luasrc/sys.lua @@ -25,18 +25,19 @@ limitations under the License. ]]-- -local io = require "io" -local os = require "os" -local table = require "table" -local nixio = require "nixio" -local fs = require "nixio.fs" +local io = require "io" +local os = require "os" +local table = require "table" +local nixio = require "nixio" +local fs = require "nixio.fs" +local iwinfo = require "iwinfo" local luci = {} luci.util = require "luci.util" luci.ip = require "luci.ip" -local tonumber, ipairs, pairs, pcall, type, next = - tonumber, ipairs, pairs, pcall, type, next +local tonumber, ipairs, pairs, pcall, type, next, setmetatable = + tonumber, ipairs, pairs, pcall, type, next, setmetatable --- LuCI Linux and POSIX system utilities. @@ -617,6 +618,21 @@ end -- @name luci.sys.wifi wifi = {} +--- Get wireless information for given interface. +-- @param ifname String containing the interface name +-- @return A wrapped iwinfo object instance +function wifi.getiwinfo(ifname) + local t = iwinfo.type(ifname) + if t then + local x = iwinfo[t] + return setmetatable({}, { + __index = function(t, k) + if x[k] then return x[k](ifname) end + end + }) + end +end + --- Get iwconfig output for all wireless devices. -- @return Table of tables containing the iwconfing output for each wifi device function wifi.getiwconfig() |