diff --git a/mcastmngr/files/common/etc/hotplug.d/ethernet/mcast.hotplug b/mcastmngr/files/common/etc/hotplug.d/ethernet/mcast.hotplug new file mode 100755 index 000000000..40e04d9e0 --- /dev/null +++ b/mcastmngr/files/common/etc/hotplug.d/ethernet/mcast.hotplug @@ -0,0 +1,24 @@ +#!/bin/sh + +[ "$LINK" = "up" -a -n "$PORT" ] || exit 0 + +compare_mcast_snooping_interface() { + local interface dev running + + config_get interface "$1" interface + + for dev in $interface; do + if [ "$PORT" = "$dev" ]; then + running=$(ubus call service list '{"name": "mcast"}' | jsonfilter -e '@.mcast.instances') + if [ -z "${running}" ]; then + /etc/init.d/mcast start + else + ubus call uci commit '{"config":"mcast"}' + fi + exit + fi + done +} + +config_load mcast +config_foreach compare_mcast_snooping_interface "snooping" diff --git a/mcastmngr/files/common/etc/hotplug.d/iface/mcast.hotplug b/mcastmngr/files/common/etc/hotplug.d/iface/mcast.hotplug old mode 100644 new mode 100755 index 762a0abbe..010f601a4 --- a/mcastmngr/files/common/etc/hotplug.d/iface/mcast.hotplug +++ b/mcastmngr/files/common/etc/hotplug.d/iface/mcast.hotplug @@ -1,27 +1,22 @@ #!/bin/sh -[ "$ACTION" = ifup ] || exit 0 +[ "$ACTION" = "ifup" -a -n "$INTERFACE" ] || exit 0 . /lib/functions/network.sh -network_get_device l3device $INTERFACE +network_get_device l3device "$INTERFACE" [ -n "$l3device" ] || exit 0 compare_mcast_proxy_upstream() { - local upstream - local mode="$2" + local upstream dev running - if [ "$mode" == "proxy" ]; then - config_get upstream $1 upstream_interface - else - config_get upstream $1 interface - fi + config_get upstream "$1" upstream_interface for dev in $upstream; do - if [ "$l3device" == "$dev" ]; then + if [ "$l3device" = "$dev" ]; then running=$(ubus call service list '{"name": "mcast"}' | jsonfilter -e '@.mcast.instances') - if [ -z "${running}" ];then + if [ -z "${running}" ]; then /etc/init.d/mcast start else ubus call uci commit '{"config":"mcast"}' @@ -32,5 +27,4 @@ compare_mcast_proxy_upstream() { } config_load mcast -config_foreach compare_mcast_proxy_upstream "proxy" "proxy" -config_foreach compare_mcast_proxy_upstream "snooping" "snooping" +config_foreach compare_mcast_proxy_upstream "proxy"