summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAnton Kikin <a.kikin@tano-systems.com>2018-07-15 15:55:04 +0300
committerAnton Kikin <a.kikin@tano-systems.com>2019-12-07 22:28:17 +0300
commit72247ee09f17fe1f7972de29ca8bc5910a956565 (patch)
treef3ee9323143e9d5e6e578324760c4ab65b14f117
parent45725dfca6dbe6e24501712a827bbdf6f41d03e8 (diff)
luci-base: network.lua: fix bridge related functions
This commit fixes these bugs: 1. Functions interface.bridge_id() and interface.bridge_stp() uses self.br field that is not exists at all 2. Function interface.is_bridgeport() return true only for bridge interface, not for bridge port interfaces. Signed-off-by: Anton Kikin <a.kikin@tano-systems.com>
-rw-r--r--modules/luci-compat/luasrc/model/network.lua12
1 files changed, 7 insertions, 5 deletions
diff --git a/modules/luci-compat/luasrc/model/network.lua b/modules/luci-compat/luasrc/model/network.lua
index b3fc2a7c28..67a1cc402a 100644
--- a/modules/luci-compat/luasrc/model/network.lua
+++ b/modules/luci-compat/luasrc/model/network.lua
@@ -371,6 +371,7 @@ function init(cursor)
b.ifnames[1].bridge = b
end
_bridge[r[1]] = b
+ _interfaces[r[1]].bridge = b
elseif b then
b.ifnames[#b.ifnames+1] = _interfaces[r[2]]
b.ifnames[#b.ifnames].bridge = b
@@ -1452,16 +1453,16 @@ function interface.ports(self)
end
function interface.bridge_id(self)
- if self.br then
- return self.br.id
+ if self.dev and self.dev.bridge then
+ return self.dev.bridge.id
else
return nil
end
end
function interface.bridge_stp(self)
- if self.br then
- return self.br.stp
+ if self.dev and self.dev.bridge then
+ return self.dev.bridge.stp
else
return false
end
@@ -1480,7 +1481,8 @@ function interface.is_bridge(self)
end
function interface.is_bridgeport(self)
- return self.dev and self.dev.bridge and true or false
+ return self.dev and self.dev.bridge and
+ (self.dev.bridge.name != self:name()) and true or false
end
function interface.tx_bytes(self)