#!/bin/sh

[ "$ACTION" = "ifup" -a -n "$INTERFACE" ] || exit 0

. /lib/functions/network.sh

network_get_device l3device "$INTERFACE"

[ -n "$l3device" ] || exit 0

compare_mcast_proxy_upstream() {
	local upstream dev running

	config_get upstream "$1" upstream_interface

	for dev in $upstream; do
		if [ "$l3device" = "$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_proxy_upstream "proxy"
