luci-base: luci.model.network: recognize alias interfaces
authorJo-Philipp Wich <jo@mein.io>
Sun, 15 Jul 2018 15:07:28 +0000 (17:07 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sun, 15 Jul 2018 15:35:28 +0000 (17:35 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/luasrc/model/network.lua

index 78df72da2453d07e8416f32c99d6b6a8b7f49a1f..cce559aab1740166f9efa82989f01b87f9f5c3db 100644 (file)
@@ -1348,7 +1348,9 @@ function interface.ip6addrs(self)
 end
 
 function interface.type(self)
-       if self.wif or _wifi_iface(self.ifname) then
+       if self.ifname and self.ifname:byte(1) == 64 then
+               return "alias"
+       elseif self.wif or _wifi_iface(self.ifname) then
                return "wifi"
        elseif _bridge[self.ifname] then
                return "bridge"
@@ -1385,7 +1387,9 @@ end
 
 function interface.get_type_i18n(self)
        local x = self:type()
-       if x == "wifi" then
+       if x == "alias" then
+               return lng.translate("Alias Interface")
+       elseif x == "wifi" then
                return lng.translate("Wireless Adapter")
        elseif x == "bridge" then
                return lng.translate("Bridge")
@@ -1438,7 +1442,11 @@ function interface.bridge_stp(self)
 end
 
 function interface.is_up(self)
-       return self:_ubus("up") or false
+       local up = self:_ubus("up")
+       if up == nil then
+               up = (self:type() == "alias")
+       end
+       return up or false
 end
 
 function interface.is_bridge(self)