igmpproxy: register interface change triggers
authorJohn Crispin <john@openwrt.org>
Thu, 5 Jun 2014 10:56:18 +0000 (10:56 +0000)
committerJohn Crispin <john@openwrt.org>
Thu, 5 Jun 2014 10:56:18 +0000 (10:56 +0000)
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 41011

package/network/services/igmpproxy/Makefile
package/network/services/igmpproxy/files/igmpproxy.hotplug [deleted file]
package/network/services/igmpproxy/files/igmpproxy.init

index 027fcb99d214bac94c36b934d80d02d7f45ca00d..47b995bb5188c0438c1a279f0e6f640c3d727809 100644 (file)
@@ -51,8 +51,6 @@ define Package/igmpproxy/install
        $(INSTALL_CONF) ./files/igmpproxy.config $(1)/etc/config/igmpproxy
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/igmpproxy.init $(1)/etc/init.d/igmpproxy
-       $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
-       $(INSTALL_BIN) ./files/igmpproxy.hotplug $(1)/etc/hotplug.d/iface/igmpproxy
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/igmpproxy $(1)/usr/sbin/
 endef
diff --git a/package/network/services/igmpproxy/files/igmpproxy.hotplug b/package/network/services/igmpproxy/files/igmpproxy.hotplug
deleted file mode 100644 (file)
index ebe353a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-/etc/init.d/igmpproxy reload
index 75d111f3c06657d4a3b9cfad8629701ac1c43534..58b4377a9dcfa497816a0bbc0618061466bef2d3 100644 (file)
@@ -20,7 +20,6 @@ CONFIGFILE=/var/etc/igmpproxy.conf
 # OPTIONS="-v" - be verbose, this will write aditional information to syslog
 
 OPTIONS=""
-UPSTREAM=0
 
 igmp_header() {
        local quickleave
@@ -45,8 +44,6 @@ igmp_add_phyint() {
        json_get_var up up
        [ -n "$device" -a "$up" = "1" ] || return;
 
-       UPSTREAM=1
-
        echo -e "\nphyint $device $direction ratelimit 0 threshold 1" >> /var/etc/igmpproxy.conf
 
        if [ -n "$altnets" ]; then
@@ -57,6 +54,13 @@ igmp_add_phyint() {
        fi
 }
 
+igmp_add_network() {
+       local network
+
+       config_get network $1 network
+       procd_add_interface_trigger "interface.*" $network /etc/init.d/igmpproxy restart
+}
+
 service_triggers() {
        procd_add_reload_trigger "igmpproxy"
 }
@@ -67,13 +71,14 @@ start_service() {
        config_foreach igmp_header igmpproxy
        config_foreach igmp_add_phyint phyint
 
-       [ $UPSTREAM = 1 ] || return
-
        procd_open_instance
        procd_set_param command $PROG
        [ -n "$OPTIONS" ] && procd_append_param $OPTIONS
        procd_append_param command $CONFIGFILE
        procd_set_param file $CONFIGFILE
        procd_set_param respawn
+       procd_open_trigger
+       config_foreach igmp_add_network phyint
+       procd_close_trigger
        procd_close_instance
 }