luci-base: optimize luci.tools.webadmin.iface_get_network()
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 23 Jan 2015 14:26:33 +0000 (15:26 +0100)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 23 Jan 2015 14:26:33 +0000 (15:26 +0100)
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
modules/luci-base/luasrc/tools/webadmin.lua

index 34d8301ae05dc64ab0c55dbab0ee234164df270b..8273175de7d1398aefdc47f5651d6676292893d6 100644 (file)
@@ -83,23 +83,15 @@ function firewall_find_zone(name)
 end
 
 function iface_get_network(iface)
-       local devs = util.ubus("network.device", "status", { })
-       local _, net, subdev, dev, status
-
-       for dev, status in pairs(devs) do
-               if status["bridge-members"] then
-                       for _, subdev in ipairs(status["bridge-members"]) do
-                               if subdev == iface then
-                                       iface = dev
-                                       break
-                               end
-                       end
-               end
+       local link = ip.link(tostring(iface))
+       if link.master then
+               iface = link.master
        end
 
        local cur = uci.cursor()
        local dump = util.ubus("network.interface", "dump", { })
        if dump then
+               local _, net
                for _, net in ipairs(dump.interface) do
                        if net.l3_device == iface or net.device == iface then
                                -- cross check with uci to filter out @name style aliases