Ver código fonte

omcproxy: optimize interface triggers

Before installing an interface triggger check if an interface
trigger for the interface is already in place.
This avoids installing identical interface triggers for a given
interface

Signed-off-by: Hans Dedecker <[email protected]>
Hans Dedecker 6 anos atrás
pai
commit
d405edb481

+ 1 - 1
package/network/services/omcproxy/Makefile

@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=omcproxy
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/project/omcproxy.git

+ 12 - 1
package/network/services/omcproxy/files/omcproxy.init

@@ -51,7 +51,16 @@ omcproxy_add_network_triggers() {
 	config_get downlinks $1 downlink
 
 	for link in $uplink $downlinks; do
-		procd_add_interface_trigger "interface.*" $link /etc/init.d/omcproxy restart
+		local duplicate=0
+
+		for l in $LINKS; do
+			[ "$l" = "$link" ] && duplicate=1
+		done
+
+		[ "$duplicate" = 0 ] && {
+			LINKS="$LINKS $link"
+			procd_add_interface_trigger "interface.*" $link /etc/init.d/omcproxy restart
+		}
 	done
 }
 
@@ -114,6 +123,8 @@ omcproxy_add_firewall_rules() {
 }
 
 service_triggers() {
+	LINKS=""
+
 	procd_add_reload_trigger "omcproxy"
 	config_foreach omcproxy_add_network_triggers proxy
 }