From 7b5381a9c1b7a3baf193ec2b04ad4b197afa870d Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
 <41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 20 Sep 2023 11:17:48 +0200
Subject: [PATCH] gluon-wan-dnsmasq: rewrite initfile to use procd (#2991)

Rewrite the gluon-wan-dnsmasq initfile to use procd. This allows for
configuring restart handling by procd in case of a crash.

While at it, disable the caching feature optionally used for the regular
dnsmasq on the wan dnsmasq. This daemon is only for redirecting DNS
requests to use local network resolvers, not introducing caching.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 64a9478ab8f625ca73e94eb6450712b1cdef007f)

Co-authored-by: David Bauer <mail@david-bauer.net>
---
 .../files/etc/init.d/gluon-wan-dnsmasq        | 26 ++++++-------------
 1 file changed, 8 insertions(+), 18 deletions(-)

diff --git a/package/gluon-wan-dnsmasq/files/etc/init.d/gluon-wan-dnsmasq b/package/gluon-wan-dnsmasq/files/etc/init.d/gluon-wan-dnsmasq
index 78799c9c9..6f5daa63f 100755
--- a/package/gluon-wan-dnsmasq/files/etc/init.d/gluon-wan-dnsmasq
+++ b/package/gluon-wan-dnsmasq/files/etc/init.d/gluon-wan-dnsmasq
@@ -2,28 +2,18 @@
 
 START=60
 
-SERVICE_NAME=gluon-wan-dnsmasq
-SERVICE_USE_PID=1
-SERVICE_PID_FILE=/var/run/gluon-wan-dnsmasq.pid
-
-
-PORT=54
-PACKET_MARK=1
+USE_PROCD=1
 
 RESOLV_CONF_DIR=/var/gluon/wan-dnsmasq
 RESOLV_CONF=$RESOLV_CONF_DIR/resolv.conf
 
-
-start() {
+start_service() {
 	mkdir -p $RESOLV_CONF_DIR
-	/lib/gluon/wan-dnsmasq/update.lua
-
-	export LD_PRELOAD=libpacketmark.so
-	export LIBPACKETMARK_MARK=$PACKET_MARK
-
-	service_start /usr/sbin/dnsmasq -x $SERVICE_PID_FILE -u root -i lo -p $PORT -h -r $RESOLV_CONF
-}
+	touch "$RESOLV_CONF"
 
-stop() {
-	service_stop /usr/sbin/dnsmasq
+	procd_open_instance
+	procd_set_param command /usr/sbin/dnsmasq -u root -i lo -p 54 -h -k -c 0 -r $RESOLV_CONF
+	procd_set_param env LD_PRELOAD=libpacketmark.so LIBPACKETMARK_MARK=1
+	procd_set_param respawn 60 5 5
+	procd_close_instance
 }
-- 
GitLab