Przeglądaj źródła

igmpproxy: register interface change triggers

Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 41011
John Crispin 11 lat temu
rodzic
commit
ac69d576b4

+ 0 - 2
package/network/services/igmpproxy/Makefile

@@ -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

+ 0 - 3
package/network/services/igmpproxy/files/igmpproxy.hotplug

@@ -1,3 +0,0 @@
-#!/bin/sh
-
-/etc/init.d/igmpproxy reload

+ 10 - 5
package/network/services/igmpproxy/files/igmpproxy.init

@@ -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
 }