aboutsummaryrefslogtreecommitdiff
path: root/net/acme-common
diff options
context:
space:
mode:
authorGlen Huang <i@glenhuang.com>2022-10-22 22:17:08 +0800
committerGlen Huang <i@glenhuang.com>2022-10-24 10:07:06 +0800
commit7f04710579ef9466bc429403624fed71f112d6c9 (patch)
treef7f73297d0e38e6a56a500912027208844fb6618 /net/acme-common
parent035cc09e7f2b3619adce079ee266ad354f32e53b (diff)
amce: use procd to restart services
Directly calling `/etc/init.d/<service> reload` in a hotplug script can inadvertently start a stopped service. Signed-off-by: Glen Huang <i@glenhuang.com>
Diffstat (limited to 'net/acme-common')
-rw-r--r--net/acme-common/Makefile2
-rw-r--r--net/acme-common/files/acme-notify.sh17
2 files changed, 19 insertions, 0 deletions
diff --git a/net/acme-common/Makefile b/net/acme-common/Makefile
index 997c31e31..a279641c2 100644
--- a/net/acme-common/Makefile
+++ b/net/acme-common/Makefile
@@ -41,10 +41,12 @@ define Package/acme-common/install
$(INSTALL_BIN) ./files/acme.sh $(1)/usr/bin/acme
$(INSTALL_DIR) $(1)/usr/lib/acme
$(INSTALL_DATA) ./files/functions.sh $(1)/usr/lib/acme
+ $(INSTALL_BIN) ./files/acme-notify.sh $(1)/usr/lib/acme/notify
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/acme.init $(1)/etc/init.d/acme
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_DATA) ./files/acme.uci-defaults $(1)/etc/uci-defaults/acme
+ $(INSTALL_DIR) $(1)/etc/hotplug.d/acme
endef
define Package/acme/postinst
diff --git a/net/acme-common/files/acme-notify.sh b/net/acme-common/files/acme-notify.sh
new file mode 100644
index 000000000..4f06f9412
--- /dev/null
+++ b/net/acme-common/files/acme-notify.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+set -u
+
+event="$1"
+
+# Call hotplug first, giving scripts a chance to modify certificates before
+# reloadaing the services
+ACTION=$event hotplug-call acme
+
+case $event in
+renewed)
+ ubus call service event '{"type":"acme.renew","data":{}}'
+ ;;
+issued)
+ ubus call service event '{"type":"acme.issue","data":{}}'
+ ;;
+esac