libs/core: more fixes in network model
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 25 Sep 2011 11:58:24 +0000 (11:58 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 25 Sep 2011 11:58:24 +0000 (11:58 +0000)
libs/core/luasrc/model/network.lua

index 983483d82d02fe39ca8a0ee770eb1b09db87e2dd..5e7d7d6b6f1fb00bbabec1f0c131cc792ed97b47 100644 (file)
@@ -778,20 +778,20 @@ function network.get_interface(self)
 end
 
 function network.get_interfaces(self)
-       local ifaces = { }
+       if self:is_bridge() or (self:is_virtual() and not self:is_floating()) then
+               local ifaces = { }
 
-       local ifn
-       local nfs = { }
-       for ifn in utl.imatch(self:get("ifname")) do
-               ifn = ifn:match("^[^:/]+")
-               nfs[ifn] = interface(ifn, self)
-       end
+               local ifn
+               local nfs = { }
+               for ifn in utl.imatch(self:get("ifname")) do
+                       ifn = ifn:match("^[^:/]+")
+                       nfs[ifn] = interface(ifn, self)
+               end
 
-       for ifn in utl.kspairs(nfs) do
-               ifaces[#ifaces+1] = nfs[ifn]
-       end
+               for ifn in utl.kspairs(nfs) do
+                       ifaces[#ifaces+1] = nfs[ifn]
+               end
 
-       if self:is_bridge() then
                local num = { }
                local wfs = { }
                uci_r:foreach("wireless", "wifi-iface",
@@ -808,9 +808,9 @@ function network.get_interfaces(self)
                for ifn in utl.kspairs(wfs) do
                        ifaces[#ifaces+1] = wfs[ifn]
                end
-       end
 
-       return ifaces
+               return ifaces
+       end
 end
 
 function network.contains_interface(self, ifname)