Author: blogic
Date: 2016-04-29 13:35:15 +0200 (Fri, 29 Apr 2016)
New Revision: 49272

Modified:
   trunk/package/network/services/dropbear/Makefile
   trunk/package/network/services/dropbear/files/dropbear.init
Log:
dropbear: Add procd interface triggers when interface config is specified

A dropbear instance having an interface config won't start if the interface is 
down as no
IP address is available.
Adding interface triggers for each configured interface executing the dropbear 
reload script
will start the dropbear instance when the interface is up.

Signed-off-by: Hans Dedecker <[email protected]>

Modified: trunk/package/network/services/dropbear/Makefile
===================================================================
--- trunk/package/network/services/dropbear/Makefile    2016-04-29 11:35:10 UTC 
(rev 49271)
+++ trunk/package/network/services/dropbear/Makefile    2016-04-29 11:35:15 UTC 
(rev 49272)
@@ -9,7 +9,7 @@
 
 PKG_NAME:=dropbear
 PKG_VERSION:=2015.71
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \

Modified: trunk/package/network/services/dropbear/files/dropbear.init
===================================================================
--- trunk/package/network/services/dropbear/files/dropbear.init 2016-04-29 
11:35:10 UTC (rev 49271)
+++ trunk/package/network/services/dropbear/files/dropbear.init 2016-04-29 
11:35:15 UTC (rev 49272)
@@ -106,6 +106,12 @@
        chmod 0700 /etc/dropbear
 }
 
+load_interfaces()
+{
+       config_get interface "$1" Interface
+       interfaces=" ${interface} ${interfaces}"
+}
+
 start_service()
 {
        [ -s /etc/dropbear/dropbear_rsa_host_key ] || keygen
@@ -119,7 +125,21 @@
 
 service_triggers()
 {
-       procd_add_reload_trigger "dropbear"
+       local interfaces
+
+       procd_open_trigger
+       procd_add_config_trigger "config.change" "dropbear" 
/etc/init.d/dropbear reload
+
+       config_load "${NAME}"
+       config_foreach load_interfaces dropbear
+
+       [ -n "${interfaces}" ] & {
+               for n in $interfaces ; do
+                       procd_add_interface_trigger "interface.*" $n 
/etc/init.d/dropbear reload
+               done
+       }
+       procd_close_trigger
+
        procd_add_validation validate_section_dropbear
 }
 
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to