libs/core: allow resolving of virtual interfaces via get_interface(), should fix...
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 11 Mar 2011 23:11:34 +0000 (23:11 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 11 Mar 2011 23:11:34 +0000 (23:11 +0000)
libs/core/luasrc/model/network.lua

index 10fa03cff7c29a778a63bb2ef43088f501526b15..0d3a75939d2a2582d8b6786d8ddaf7cfbdc447de 100644 (file)
@@ -150,13 +150,19 @@ function _wifi_lookup(ifn)
        end
 end
 
+function _iface_virtual(x)
+       return (
+               x:match("^6in4-%w") or x:match("^6to4-%w") or x:match("^3g-%w") or
+               x:match("^ppp-%w") or x:match("^pppoe-%w") or x:match("^pppoa-%w") or
+               x:match("^relay-%w")
+       )
+end
+
 function _iface_ignore(x)
        return (
                x:match("^wmaster%d") or x:match("^wifi%d") or x:match("^hwsim%d") or
-               x:match("^imq%d") or x:match("^mon.wlan%d") or x:match("^6in4-%w") or
-               x:match("^6to4-%w") or x:match("^3g-%w") or x:match("^ppp-%w") or
-               x:match("^pppoe-%w") or x:match("^pppoa-%w") or x:match("^relay-%w") or
-               x == "sit0" or x == "lo"
+               x:match("^imq%d") or x:match("^mon.wlan%d") or
+               x == "sit0" or x == "lo" or _iface_virtual(x)
        )
 end
 
@@ -175,7 +181,7 @@ function init(cursor)
                local name = i.name:match("[^:]+")
                local prnt = name:match("^([^%.]+)%.")
 
-               if not _iface_ignore(name) then
+               if _iface_virtual(name) or not _iface_ignore(name) then
                        ifs[name] = ifs[name] or {
                                idx      = i.ifindex or n,
                                name     = name,