summaryrefslogtreecommitdiff
path: root/system-linux.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-12-19 18:15:01 +0100
committerFelix Fietkau <nbd@nbd.name>2022-12-19 18:15:24 +0100
commita2e8cd75dbf6196f9408165e2e5f56c84fa37ca3 (patch)
tree4c5c4ccfa7218ab6bb513a9506ddd7417723bb9f /system-linux.c
parent96bcbb2e4eb69065150203deaa2c13046a22af6a (diff)
downloadnetifd-a2e8cd75dbf6196f9408165e2e5f56c84fa37ca3.tar.gz
wireless: add support for disabling multicast-to-unicast per virtual interface
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'system-linux.c')
-rw-r--r--system-linux.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/system-linux.c b/system-linux.c
index 9fe869f..f16a955 100644
--- a/system-linux.c
+++ b/system-linux.c
@@ -847,8 +847,10 @@ system_bridge_set_wireless(struct device *bridge, struct device *dev)
bool mcast_to_ucast = dev->wireless_ap;
bool hairpin;
- if (bridge->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST &&
- !bridge->settings.multicast_to_unicast)
+ if (dev->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST)
+ mcast_to_ucast = dev->settings.multicast_to_unicast;
+ else if (bridge->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST &&
+ !bridge->settings.multicast_to_unicast)
mcast_to_ucast = false;
hairpin = mcast_to_ucast || dev->wireless_proxyarp;