diff options
author | Anton Kikin <a.kikin@tano-systems.com> | 2018-07-15 15:55:04 +0300 |
---|---|---|
committer | Anton Kikin <a.kikin@tano-systems.com> | 2019-12-07 22:28:17 +0300 |
commit | 72247ee09f17fe1f7972de29ca8bc5910a956565 (patch) | |
tree | f3ee9323143e9d5e6e578324760c4ab65b14f117 | |
parent | 45725dfca6dbe6e24501712a827bbdf6f41d03e8 (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.lua | 12 |
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 b3fc2a7c2..67a1cc402 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) |