omcproxy: optimize interface triggers
authorHans Dedecker <dedeckeh@gmail.com>
Sat, 29 Dec 2018 14:56:39 +0000 (15:56 +0100)
committerHans Dedecker <dedeckeh@gmail.com>
Sat, 29 Dec 2018 15:08:31 +0000 (16:08 +0100)
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 <dedeckeh@gmail.com>
package/network/services/omcproxy/Makefile
package/network/services/omcproxy/files/omcproxy.init

index 8f0c8b7..a026422 100644 (file)
@@ -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
index 30816e3..757b779 100644 (file)
@@ -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
 }