[Midnightbsd-cvs] src [11695] trunk/etc/rc.d/local_unbound: add unbound

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Jul 8 16:38:15 EDT 2018


Revision: 11695
          http://svnweb.midnightbsd.org/src/?rev=11695
Author:   laffer1
Date:     2018-07-08 16:38:14 -0400 (Sun, 08 Jul 2018)
Log Message:
-----------
add unbound

Added Paths:
-----------
    trunk/etc/rc.d/local_unbound

Added: trunk/etc/rc.d/local_unbound
===================================================================
--- trunk/etc/rc.d/local_unbound	                        (rev 0)
+++ trunk/etc/rc.d/local_unbound	2018-07-08 20:38:14 UTC (rev 11695)
@@ -0,0 +1,114 @@
+#!/bin/sh
+#
+# $MidnightBSD$
+
+# PROVIDE: local_unbound
+# REQUIRE: FILESYSTEMS netif resolv
+# BEFORE: NETWORKING
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name="local_unbound"
+desc="local caching forwarding resolver"
+rcvar="local_unbound_enable"
+
+command="/usr/sbin/unbound"
+extra_commands="anchor configtest reload setup"
+start_precmd="local_unbound_prestart"
+start_postcmd="local_unbound_poststart"
+reload_precmd="local_unbound_configtest"
+anchor_cmd="local_unbound_anchor"
+configtest_cmd="local_unbound_configtest"
+setup_cmd="local_unbound_setup"
+pidfile="/var/run/${name}.pid"
+
+load_rc_config $name
+
+: ${local_unbound_workdir:=/var/unbound}
+: ${local_unbound_config:=${local_unbound_workdir}/unbound.conf}
+: ${local_unbound_flags:="-c ${local_unbound_config}"}
+: ${local_unbound_forwardconf:=${local_unbound_workdir}/forward.conf}
+: ${local_unbound_controlconf:=${local_unbound_workdir}/control.conf}
+: ${local_unbound_anchor:=${local_unbound_workdir}/root.key}
+: ${local_unbound_forwarders:=}
+
+do_as_unbound()
+{
+	echo "$@" | su -m unbound
+}
+
+#
+# Retrieve or update the DNSSEC root anchor
+#
+local_unbound_anchor()
+{
+	do_as_unbound /usr/sbin/unbound-anchor -a ${local_unbound_anchor}
+	# we can't trust the exit code - check if the file exists
+	[ -f ${local_unbound_anchor} ]
+}
+
+#
+# Check the unbound configuration file
+#
+local_unbound_configtest()
+{
+	do_as_unbound /usr/sbin/unbound-checkconf ${local_unbound_config}
+}
+
+#
+# Create the unbound configuration file and update resolv.conf to
+# point to unbound.
+#
+local_unbound_setup()
+{
+	echo "Performing initial setup."
+	/usr/sbin/local-unbound-setup -n \
+	    -u unbound \
+	    -w ${local_unbound_workdir} \
+	    -c ${local_unbound_config} \
+	    -f ${local_unbound_forwardconf} \
+	    -o ${local_unbound_controlconf} \
+	    -a ${local_unbound_anchor} \
+	    ${local_unbound_forwarders}
+}
+
+#
+# Before starting, check that the configuration file and root anchor
+# exist.  If not, attempt to generate them.
+#
+local_unbound_prestart()
+{
+	# Create configuration file
+	if [ ! -f ${local_unbound_config} ] ; then
+		run_rc_command setup
+	fi
+
+	# Retrieve DNSSEC root key
+	if [ ! -f ${local_unbound_anchor} ] ; then
+		run_rc_command anchor
+	fi
+}
+
+#
+# After starting, wait for Unbound to report that it is ready to avoid
+# race conditions with services which require functioning DNS.
+#
+local_unbound_poststart()
+{
+	local retry=5
+
+	echo -n "Waiting for nameserver to start..."
+	until "${command}-control" status | grep -q "is running" ; do
+		if [ $((retry -= 1)) -eq 0 ] ; then
+			echo " giving up"
+			return 1
+		fi
+		echo -n "."
+		sleep 1
+	done
+	echo " good"
+}
+
+load_rc_config $name
+run_rc_command "$1"


Property changes on: trunk/etc/rc.d/local_unbound
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list