diff --git a/map-agent/files/etc/hotplug.d/ethernet/map-dynamic-backhaul b/map-agent/files/etc/hotplug.d/ethernet/map-dynamic-backhaul index af8e9e687..517dd5539 100755 --- a/map-agent/files/etc/hotplug.d/ethernet/map-dynamic-backhaul +++ b/map-agent/files/etc/hotplug.d/ethernet/map-dynamic-backhaul @@ -97,7 +97,9 @@ if [ "$LINK" = "up" ]; then /lib/wifi/multiap set_uplink "eth" "$PORT" else - rm -f "$map_bh_file" + /lib/wifi/multiap unset_uplink "eth" + #rm -f "$map_bh_file" config_load "mapagent" config_foreach update_bstas bsta up + fi diff --git a/map-agent/files/lib/wifi/multiap b/map-agent/files/lib/wifi/multiap index 619882949..81bcde42d 100755 --- a/map-agent/files/lib/wifi/multiap +++ b/map-agent/files/lib/wifi/multiap @@ -797,21 +797,26 @@ set_uplink() { config_load mapagent - mapagent_process_agent() { - local section=$1 + island_prevention="$(uci -q get mapagent.agent.island_prevention)" - config_get island_prevention $section island_prevention + if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then + ubus call map.agent toggle_fh '{"enable":true, "prevent_island":true, "ifname":"all"}' + fi - if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then - ubus call map.agent toggle_fh '{"ifname":"all", "enable":true}' - fi - } - - config_foreach mapagent_process_agent agent } unset_uplink() { - rm "$MAPFILE" > /dev/null 2>&1 + local type=${1:-wifi} + + config_load mapagent + + island_prevention="$(uci -q get mapagent.agent.island_prevention)" + + if [ "$island_prevention" = "1" -a "$type" = "eth" ]; then + ubus call map.agent toggle_fh '{"enable":false, "prevent_island":true, "ifname":"all"}' + fi + + rm -f "$MAPFILE" > /dev/null 2>&1 } func=$1