diff options
Diffstat (limited to 'scripts/netifd-wireless.sh')
-rw-r--r-- | scripts/netifd-wireless.sh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/netifd-wireless.sh b/scripts/netifd-wireless.sh index c5d8a96..f981f1b 100644 --- a/scripts/netifd-wireless.sh +++ b/scripts/netifd-wireless.sh @@ -248,12 +248,26 @@ wireless_vif_parse_encryption() { esac } +_wireless_set_brsnoop_isolation() { + local multicast_to_unicast="$1" + local isolate + + json_get_var isolate isolate + + [ $isolate -gt 0 -o -z "$network_bridge" ] && return + + [ -z "$multicast_to_unicast" ] && multicast_to_unicast=1 + [ $multicast_to_unicast -gt 0 ] && json_add_boolean isolate 1 +} + for_each_interface() { local _w_types="$1"; shift local _w_ifaces _w_iface local _w_type local _w_found + local multicast_to_unicast + json_get_keys _w_ifaces interfaces json_select interfaces for _w_iface in $_w_ifaces; do @@ -261,6 +275,7 @@ for_each_interface() { if [ -n "$_w_types" ]; then json_get_var network_bridge bridge json_select config + _wireless_set_brsnoop_isolation "$multicast_to_unicast" json_get_var _w_type mode json_select .. _w_types=" $_w_types " |