local ipairs, pairs, require = ipairs, pairs, require
local os = require "os"
-local cursor = require "luci.model.uci".inst
+local uci = require "luci.model.uci"
+local cursor = uci.inst
+local state = uci.inst_state
module "luci.niulib"
return ifs
end
-function wifi_get_available(except)
+function eth_get_bridged(except)
+ local devs = state:get("network", except, "device") or ""
+
+ local ifs = {}
+ local cnt = 0
+ for x in devs:gmatch("[^ ]+") do
+ cnt = cnt + 1
+ if x:find("eth") == 1 then
+ ifs[#ifs+1] = x
+ end
+ end
+ return cnt > 1 and ifs or {}
+end
+
+function wifi_get_available(except, types)
cursor:unload("wireless")
local iwinfo = require "iwinfo"
for k in pairs(used) do
local t = iwinfo.type(k)
if t and iwinfo[t] then
- used[k] = (iwinfo[t].mbssid_support() < 1)
+ used[k] = (iwinfo[t].mbssid_support(k) < 1)
end
end
local wifis = {}
cursor:foreach("wireless", "wifi-device", function(s)
- if not used[s[".name"]] then
+ if not used[s[".name"]] and (not types or types[s.type]) then
wifis[#wifis+1] = s[".name"]
end
end)