diff --git a/mcastmngr/Makefile b/mcastmngr/Makefile index a3a880c8f..79b65771f 100644 --- a/mcastmngr/Makefile +++ b/mcastmngr/Makefile @@ -29,7 +29,8 @@ MAKE_PATH:=bbf_plugin define Package/mcastmngr CATEGORY:=Utilities TITLE:=Multicast Proxy/Snooping Manager - DEPENDS:=+!TARGET_brcmbca:mcproxy +libuci +libubox +libubus +libblobmsg-json + DEPENDS:=+libuci +libubox +libubus +libblobmsg-json + DEPENDS+=+!TARGET_brcmbca:mcproxy +!TARGET_brcmbca:sipcalc DEPENDS+=+libbbfdm-api +libbbfdm-ubus +dm-service endef diff --git a/mcastmngr/files/linux/lib/mcast/linux.sh b/mcastmngr/files/linux/lib/mcast/linux.sh index 9b3a4f28a..273399859 100755 --- a/mcastmngr/files/linux/lib/mcast/linux.sh +++ b/mcastmngr/files/linux/lib/mcast/linux.sh @@ -89,9 +89,16 @@ config_mcproxy_interfaces() { for excp in $exceptions; do case $excp in */*) - ip_start="$(ipcalc.sh $excp | grep IP | awk '{print substr($0,4)}')" - ip_end="$(ipcalc.sh $excp | grep BROADCAST | awk '{print substr($0,11)}')" - filter="$filter ($ip_start - $ip_end | *)" + if [ "$protocol" == "igmp" ]; then + ip_start="$(ipcalc.sh $excp | grep IP | awk '{print substr($0,4)}')" + ip_end="$(ipcalc.sh $excp | grep BROADCAST | awk '{print substr($0,11)}')" + filter="$filter ($ip_start - $ip_end | *)" + elif [ "$protocol" == "mld" ]; then + output="$(sipcalc $excp | grep "Network range" -A 1 | cut -d'-' -f2 | tr '\n' ' ')" + ip_start="$(echo $output | awk '{print $1}')" + ip_end="$(echo $output | awk '{print $2}')" + filter="$filter ($ip_start - $ip_end | *)" + fi ;; *) filter="$filter ($excp | *)"