From 61d5aee1ce02888e78eab4ed85a9c8e631006d7b Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Tue, 22 Aug 2017 19:38:25 +0200 Subject: eth-multiplexer: Respect interfaces up flags. * eth-multiplexer/device_impl.c (ds_device_write): Deny writes when interface is down. * eth-multiplexer/vdev.c (add_vdev): Initialize flags to a sane value. (broadcast_pack): Skip interfaces that are down. (broadcast_msg): Likewise. --- eth-multiplexer/device_impl.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'eth-multiplexer/device_impl.c') diff --git a/eth-multiplexer/device_impl.c b/eth-multiplexer/device_impl.c index 18ebf07e..f23738a1 100644 --- a/eth-multiplexer/device_impl.c +++ b/eth-multiplexer/device_impl.c @@ -108,6 +108,9 @@ ds_device_write (struct vether_device *vdev, mach_port_t reply_port, if (vdev == NULL) return D_NO_SUCH_DEVICE; + if ((vdev->if_flags & IFF_UP) == 0) + return D_DEVICE_DOWN; + /* The packet is forwarded to all virtual interfaces and * the interface which the multiplexer connects to. */ broadcast_pack (data, datalen, vdev); -- cgit v1.2.3