[OpenWrt-Devel] [PATCH 4/6] dropbear: Add procd interface triggers when interface config is specified

Hans Dedecker dedeckeh at gmail.com
Wed Apr 27 05:14:00 EDT 2016


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 <dedeckeh at gmail.com>
---
 package/network/services/dropbear/Makefile         |  2 +-
 .../network/services/dropbear/files/dropbear.init  | 22 +++++++++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index 593e0a8..8d4e7bc 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dropbear
 PKG_VERSION:=2015.71
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:= \
diff --git a/package/network/services/dropbear/files/dropbear.init b/package/network/services/dropbear/files/dropbear.init
index 03745c9..5c3345d 100755
--- a/package/network/services/dropbear/files/dropbear.init
+++ b/package/network/services/dropbear/files/dropbear.init
@@ -106,6 +106,12 @@ keygen()
 	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 @@ start_service()
 
 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
 }
 
-- 
1.9.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list