applications/ffwizard: Massive changes to the ffwizard to make it more generic. Also...
[project/luci.git] / modules / niu / luasrc / niulib.lua
index 2a46355..7690294 100644 (file)
@@ -15,7 +15,9 @@ $Id$
 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"
@@ -36,7 +38,21 @@ function eth_get_available(except)
        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"
@@ -50,13 +66,13 @@ function wifi_get_available(except)
        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)