From e29167801238586e90b9437877a2caf21c5f1552 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 27 Nov 2010 16:57:39 +0000 Subject: libs/sys: protect iwinfo loading and return stub if module is not present --- libs/sys/luasrc/sys.lua | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'libs') 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 -- cgit v1.2.3