Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Jun 2011 22:48:40 +0000 (UTC)
From:      Doug Barton <dougb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223310 - in head: etc/defaults etc/rc.d share/man/man5
Message-ID:  <201106192248.p5JMmeKN012708@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dougb
Date: Sun Jun 19 22:48:40 2011
New Revision: 223310
URL: http://svn.freebsd.org/changeset/base/223310

Log:
  Add the netwait rc.d script. It waits for the specified period for the
  network to become active.
  
  PR:		conf/151063
  Submitted by:	Jeremy Chadwick <freebsd@jdc.parodius.com>

Modified:
  head/etc/defaults/rc.conf
  head/etc/rc.d/Makefile
  head/etc/rc.d/mountcritremote
  head/share/man/man5/rc.conf.5

Modified: head/etc/defaults/rc.conf
==============================================================================
--- head/etc/defaults/rc.conf	Sun Jun 19 22:08:55 2011	(r223309)
+++ head/etc/defaults/rc.conf	Sun Jun 19 22:48:40 2011	(r223310)
@@ -444,6 +444,13 @@ ubthidhci_enable="NO"		# Switch an USB B
 #ubthidhci_addr="2"		# Check usbconfig list to find the correct
 				# numbers for your system.
 
+### Network link/usability verification options
+netwait_enable="NO"		# Enable rc.d/netwait (or NO)
+#netwait_ip=""			# IP addresses to be pinged by netwait.
+netwait_timeout="60"		# Total number of seconds to perform pings.
+#netwait_if=""			# Interface name to watch link state on.
+netwait_if_timeout="30"		# Total number of seconds to monitor link state.
+
 ### Miscellaneous network options: ###
 icmp_bmcastecho="NO"	# respond to broadcast ping packets
 

Modified: head/etc/rc.d/Makefile
==============================================================================
--- head/etc/rc.d/Makefile	Sun Jun 19 22:08:55 2011	(r223309)
+++ head/etc/rc.d/Makefile	Sun Jun 19 22:48:40 2011	(r223310)
@@ -22,7 +22,7 @@ FILES=	DAEMON FILESYSTEMS LOGIN NETWORKI
 	ldconfig local localpkg lockd lpd \
 	mixer motd mountcritlocal mountcritremote mountlate \
 	mdconfig mdconfig2 mountd moused mroute6d mrouted msgs \
-	named natd netif netoptions \
+	named natd netif netoptions netwait \
 	newsyslog nfsclient nfscbd nfsd \
 	nfsserver nfsuserd nisdomain nsswitch ntpd ntpdate \
 	othermta \

Modified: head/etc/rc.d/mountcritremote
==============================================================================
--- head/etc/rc.d/mountcritremote	Sun Jun 19 22:08:55 2011	(r223309)
+++ head/etc/rc.d/mountcritremote	Sun Jun 19 22:48:40 2011	(r223310)
@@ -4,7 +4,7 @@
 #
 
 # PROVIDE: mountcritremote
-# REQUIRE: NETWORKING FILESYSTEMS cleanvar ipsec
+# REQUIRE: NETWORKING FILESYSTEMS cleanvar ipsec netwait
 # KEYWORD: nojail
 
 . /etc/rc.subr

Modified: head/share/man/man5/rc.conf.5
==============================================================================
--- head/share/man/man5/rc.conf.5	Sun Jun 19 22:08:55 2011	(r223309)
+++ head/share/man/man5/rc.conf.5	Sun Jun 19 22:48:40 2011	(r223310)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd June 18, 2011
+.Dd June 19, 2011
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -4293,6 +4293,61 @@ Bus address of the USB Bluetooth control
 Check the output of
 .Xr usbconfig 8
 on your system to find this information.
+.It Va netwait_enable
+.Pq Vt bool
+If set to
+.Dq Li YES ,
+delays the start of network-reliant services until
+.Va netwait_if
+is up and ICMP packets to a destination defined in
+.Va netwait_ip
+are flowing.
+Link state is examined first, followed by
+.Dq Li pinging
+an IP address to verify network usability.
+If no destination can be reached or timeouts are exceeded,
+network services are started anyway with no guarantee that
+the network is usable.
+Use of this variable requires both
+.Va netwait_ip
+and
+.Va netwait_if
+to be set.
+.It Va netwait_ip
+.Pq Vt str
+Empty by default.
+This variable contains a space-delimited list of IP addresses to
+.Xr ping 8 .
+DNS hostnames should not be used as resolution is not guaranteed
+to be functional at this point.
+If multiple IP addresses are specified,
+each will be tried until one is successful or the list is exhausted.
+.It Va netwait_timeout
+.Pq Vt int
+Indicates the total number of seconds to perform a
+.Dq Li ping
+against each IP address in
+.Va netwait_ip ,
+at a rate of one ping per second.
+If any of the pings are successful,
+full network connectivity is considered reliable.
+The default is 60.
+.It Va netwait_if
+.Pq Vt str
+Empty by default.
+Defines the name of the network interface on which watch for link.
+.Xr ifconfig 8
+is used to monitor the interface, looking for
+.Dq Li status: no carrier .
+Once gone, the link is considered up.
+This can be a
+.Xr vlan 4
+interface if desired.
+.It Va netwait_if_timeout
+.Pq Vt int
+Defines the total number of seconds to wait for link to become usable,
+polled at a 1-second interval.
+The default is 30.
 .El
 .Sh FILES
 .Bl -tag -width ".Pa /etc/defaults/rc.conf" -compact
@@ -4364,6 +4419,7 @@ on your system to find this information.
 .Xr ntpdate 8 ,
 .Xr pfctl 8 ,
 .Xr pflogd 8 ,
+.Xr ping 8 ,
 .Xr powerd 8 ,
 .Xr quotacheck 8 ,
 .Xr quotaon 8 ,



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