diff options
author | des <des@FreeBSD.org> | 2015-12-04 13:26:12 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2015-12-04 13:26:12 +0000 |
commit | 72c7e45913048bf7a7a9f4f898363ea802ba3ab7 (patch) | |
tree | 658b312c2da2a4079aee851908bd5b4bd805ab2b /etc | |
parent | fc230dcf447eb45f054aa940c35313f825b926df (diff) | |
download | FreeBSD-src-72c7e45913048bf7a7a9f4f898363ea802ba3ab7.zip FreeBSD-src-72c7e45913048bf7a7a9f4f898363ea802ba3ab7.tar.gz |
MFH (r287917, r287918, r289063): upgrade to latest Unbound
MFH (r283301, r289592, r291582): rc script improvements
MFH (r287880): respect manually configured forwarders when using DHCP
MFH (r289321): deconfuse man page
PR: 184047 203580 204931
Diffstat (limited to 'etc')
-rwxr-xr-x | etc/rc.d/local_unbound | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/etc/rc.d/local_unbound b/etc/rc.d/local_unbound index b826025..0a81e2c 100755 --- a/etc/rc.d/local_unbound +++ b/etc/rc.d/local_unbound @@ -17,21 +17,22 @@ 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_flags:="-c ${local_unbound_config}"} : ${local_unbound_forwardconf:=${local_unbound_workdir}/forward.conf} : ${local_unbound_anchor:=${local_unbound_workdir}/root.key} : ${local_unbound_forwarders:=} -load_rc_config $name - do_as_unbound() { echo "$@" | su -m unbound @@ -88,5 +89,25 @@ local_unbound_prestart() 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" |