From: Jo-Philipp Wich Date: Sat, 27 Nov 2010 16:57:39 +0000 (+0000) Subject: libs/sys: protect iwinfo loading and return stub if module is not present X-Git-Tag: 0.10.0~353 X-Git-Url: http://git.archive.openwrt.org/?a=commitdiff_plain;h=e29167801238586e90b9437877a2caf21c5f1552;p=project%2Fluci.git libs/sys: protect iwinfo loading and return stub if module is not present --- diff --git a/libs/sys/luasrc/sys.lua b/libs/sys/luasrc/sys.lua index d1137b76a..61da6f1cb 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