luci-proto-relay: propagate up state, do not forward netifd errors
authorJo-Philipp Wich <jo@mein.io>
Sat, 28 Jul 2018 12:09:34 +0000 (14:09 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sat, 28 Jul 2018 15:14:22 +0000 (17:14 +0200)
Due to historical reasons, the relayd daemon configuration resides in the
form of a fake "config interface" section in /etc/config/network without
actually registering a protocol handler.

This causes netifd to emit an "INVALID_PROTO" error for the interface
which is technically correct, but confusing for LuCI users.

This situation needs to be resolved upstream by either moving relayd
configuration out of the network config, or by converting the relayd
service into a proper protocol handler.

Until this happens, do not report any netifd errors since we're not
operating on an actual interface.

While we're at it, also propagate the protocol up state from the fake
virtual device to ensure that LuCI displays the relay bridge as "up"
when all relayed interfaces are up as well.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit aae187dedf726fe609ede8260f8f8343d843d046)

protocols/luci-proto-relay/luasrc/model/network/proto_relay.lua

index a2dabf9afeaa8a8fc03df506c0efe8a1a19748d8..3b811d44d11c7ed0c32000da007b3f25b7f367ab 100644 (file)
@@ -32,6 +32,11 @@ function proto.is_virtual(self)
        return true
 end
 
+function proto.is_up(self)
+       local iface = self:get_interface()
+       return iface and iface:is_up() or false
+end
+
 function proto.get_interface(self)
        return device(self.sid, self)
 end
@@ -80,6 +85,10 @@ function proto.uptime(self)
        return upt
 end
 
+function proto.errors(self)
+       return nil
+end
+
 
 function device.__init__(self, ifname, network)
        self.ifname  = ifname