libs/sys: protect iwinfo loading and return stub if module is not present

This commit is contained in:
Jo-Philipp Wich 2010-11-27 16:57:39 +00:00
parent 37ac71b816
commit e291678012

View file

@ -624,7 +624,7 @@ wifi = {}
-- @param ifname String containing the interface name -- @param ifname String containing the interface name
-- @return A wrapped iwinfo object instance -- @return A wrapped iwinfo object instance
function wifi.getiwinfo(ifname) function wifi.getiwinfo(ifname)
local iwinfo = require "iwinfo" local stat, iwinfo = pcall(require, "iwinfo")
if ifname then if ifname then
local c = 0 local c = 0
@ -652,19 +652,17 @@ function wifi.getiwinfo(ifname)
end) end)
end end
local t = iwinfo.type(ifname) local t = stat and iwinfo.type(ifname)
if t then local x = t and iwinfo[t] or { }
local x = iwinfo[t] return setmetatable({}, {
return setmetatable({}, { __index = function(t, k)
__index = function(t, k) if k == "ifname" then
if k == "ifname" then return ifname
return ifname elseif x[k] then
elseif x[k] then return x[k](ifname)
return x[k](ifname)
end
end end
}) end
end })
end end
end end