diff options
Diffstat (limited to 'libs')
-rw-r--r-- | libs/sys/luasrc/sys.lua | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index d1137b76a7..61da6f1cb4 100644 --- a/libs/sys/luasrc/sys.lua +++ b/libs/sys/luasrc/sys.lua @@ -624,7 +624,7 @@ wifi = {} -- @param ifname String containing the interface name -- @return A wrapped iwinfo object instance function wifi.getiwinfo(ifname) - local iwinfo = require "iwinfo" + local stat, iwinfo = pcall(require, "iwinfo") if ifname then local c = 0 @@ -652,19 +652,17 @@ function wifi.getiwinfo(ifname) end) end - local t = iwinfo.type(ifname) - if t then - local x = iwinfo[t] - return setmetatable({}, { - __index = function(t, k) - if k == "ifname" then - return ifname - elseif x[k] then - return x[k](ifname) - end + local t = stat and iwinfo.type(ifname) + local x = t and iwinfo[t] or { } + return setmetatable({}, { + __index = function(t, k) + if k == "ifname" then + return ifname + elseif x[k] then + return x[k](ifname) end - }) - end + end + }) end end |