ntpd couldn't resolve host name on system boot

Paul Schenkeveld freebsd at psconsult.nl
Tue Oct 25 09:53:45 UTC 2011


On Mon, Oct 24, 2011 at 06:03:27PM -0700, Jeremy Chadwick wrote:
> The one shortcoming of netwait is that it doesn't support waiting for
> multiple NICs.  Some people have dual-homed environments where they
> really would like to wait for both, say, em0 and em1, to come up and be
> functional before any more scripts are started.  I left that as a
> project for someone else, but it's something that should be added given
> its importance.

How would you like to see multiple interfaces implemented:

  - All interfaces must be up at the same time
  - Probe interfaces one by one, proceed to the next when an interface
    up or bail out when any interface stays down until the loop times
    out

Another shortcoming: ipv6 support...

The patch below adds ipv6.

One caveat, ping6 is used if a word in netwait_ip contains at least a
colon so hostnames in netwait_ip are always pinged using ipv4.

Paul Schenkeveld

--- src/etc/rc.d/netwait.orig	2011-06-22 08:27:32.000000000 +0200
+++ src/etc/rc.d/netwait	2011-10-25 11:09:16.000000000 +0200
@@ -21,7 +21,7 @@
 
 netwait_start()
 {
-	local ip rc count output link
+	local ip rc count output link ping_cmd
 
 	if [ -z "${netwait_ip}" ]; then
 		err 1 "You must define one or more IP addresses in netwait_ip"
@@ -72,7 +72,13 @@
 
 		count=1
 		while [ ${count} -le ${netwait_timeout} ]; do
-			/sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1
+			case ${ip} in
+			    *:*)
+				ping_cmd="/sbin/ping6 -c 1 -o";;
+			    *)
+				ping_cmd="/sbin/ping -t 1 -c 1 -o";;
+			esac
+			${ping_cmd} ${ip} >/dev/null 2>&1
 			rc=$?
 
 			if [ $rc -eq 0 ]; then


More information about the freebsd-stable mailing list