Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Oct 2015 15:56:59 +0000 (UTC)
From:      =?UTF-8?Q?Dag-Erling_Sm=c3=b8rgrav?= <des@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r289592 - head/etc/rc.d
Message-ID:  <201510191556.t9JFuxX4044226@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: des
Date: Mon Oct 19 15:56:59 2015
New Revision: 289592
URL: https://svnweb.freebsd.org/changeset/base/289592

Log:
  After starting Unbound, wait for up to five seconds until unbound-control
  indicates that it is up and running.
  
  PR:		184047
  MFC after:	3 weeks

Modified:
  head/etc/rc.d/local_unbound

Modified: head/etc/rc.d/local_unbound
==============================================================================
--- head/etc/rc.d/local_unbound	Mon Oct 19 15:34:24 2015	(r289591)
+++ head/etc/rc.d/local_unbound	Mon Oct 19 15:56:59 2015	(r289592)
@@ -17,6 +17,7 @@ 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"
@@ -90,5 +91,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"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201510191556.t9JFuxX4044226>