head	1.4;
access;
symbols
	RELENG_8_4:1.4.0.2
	RELENG_9_1_0_RELEASE:1.2.6.2.2.2
	RELENG_9_1:1.2.6.2.0.2
	RELENG_9_1_BP:1.2.6.2
	RELENG_8_3_0_RELEASE:1.2.2.3.2.1
	RELENG_8_3:1.2.2.3.0.2
	RELENG_8_3_BP:1.2.2.3
	RELENG_9_0_0_RELEASE:1.2.6.1.2.1
	RELENG_9_0:1.2.6.1.0.2
	RELENG_9_0_BP:1.2.6.1
	RELENG_9:1.2.0.6
	RELENG_9_BP:1.2
	RELENG_7:1.2.0.4
	RELENG_8:1.2.0.2;
locks; strict;
comment	@# @;


1.4
date	2012.11.17.01.49.05;	author svnexp;	state Exp;
branches
	1.4.2.1;
next	1.3;

1.3
date	2012.01.14.02.18.41;	author dougb;	state Exp;
branches;
next	1.2;

1.2
date	2011.06.22.06.27.32;	author dougb;	state Exp;
branches
	1.2.2.1
	1.2.4.1
	1.2.6.1;
next	1.1;

1.1
date	2011.06.19.22.59.54;	author dougb;	state Exp;
branches;
next	;

1.4.2.1
date	2012.11.17.01.49.05;	author svnexp;	state dead;
branches;
next	1.4.2.2;

1.4.2.2
date	2013.03.28.13.02.44;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1
date	2011.06.25.23.13.05;	author dougb;	state dead;
branches;
next	1.2.2.2;

1.2.2.2
date	2011.06.25.23.13.05;	author dougb;	state Exp;
branches;
next	1.2.2.3;

1.2.2.3
date	2012.02.14.10.17.14;	author dougb;	state Exp;
branches
	1.2.2.3.2.1;
next	1.2.2.4;

1.2.2.4
date	2012.11.17.10.35.57;	author svnexp;	state Exp;
branches;
next	;

1.2.2.3.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.2.2.3.2.2;

1.2.2.3.2.2
date	2012.11.17.08.24.38;	author svnexp;	state Exp;
branches;
next	;

1.2.4.1
date	2011.06.25.23.14.49;	author dougb;	state dead;
branches;
next	1.2.4.2;

1.2.4.2
date	2011.06.25.23.14.49;	author dougb;	state Exp;
branches;
next	1.2.4.3;

1.2.4.3
date	2012.02.14.10.17.30;	author dougb;	state Exp;
branches;
next	1.2.4.4;

1.2.4.4
date	2012.11.17.08.01.21;	author svnexp;	state Exp;
branches;
next	;

1.2.6.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.2.6.1.2.1;
next	1.2.6.2;

1.2.6.2
date	2012.02.14.10.16.56;	author dougb;	state Exp;
branches
	1.2.6.2.2.1;
next	1.2.6.3;

1.2.6.3
date	2012.11.17.11.36.11;	author svnexp;	state Exp;
branches;
next	;

1.2.6.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.2.6.1.2.2;

1.2.6.1.2.2
date	2012.11.17.08.36.11;	author svnexp;	state Exp;
branches;
next	;

1.2.6.2.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.2.6.2.2.2;

1.2.6.2.2.2
date	2012.11.17.08.47.01;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.4
log
@Switching exporter and resync
@
text
@#!/bin/sh

# $FreeBSD: head/etc/rc.d/netwait 230099 2012-01-14 02:18:41Z dougb $
#
# PROVIDE: netwait
# REQUIRE: NETWORKING
# KEYWORD: nojail
#
# The netwait script is intended to be used by systems which have
# statically-configured IP addresses in rc.conf(5).  If your system
# uses DHCP, you should use synchronous_dhclient="YES" in your
# /etc/rc.conf instead of using netwait.

. /etc/rc.subr

name="netwait"
rcvar="netwait_enable"

start_cmd="${name}_start"
stop_cmd=":"

netwait_start()
{
	local ip rc count output link

	if [ -z "${netwait_ip}" ]; then
		err 1 "You must define one or more IP addresses in netwait_ip"
	fi

	if [ ${netwait_timeout} -lt 1 ]; then
		err 1 "netwait_timeout must be >= 1"
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	if [ -n "${netwait_if}" ]; then
		echo -n "Waiting for $netwait_if to have link"

		count=1
		while [ ${count} -le ${netwait_if_timeout} ]; do
			if output=`/sbin/ifconfig ${netwait_if} 2>/dev/null`; then
				link=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'`
				if [ -z "${link}" ]; then
					echo '.'
					break
				fi
			else
				echo ''
				err 1 "ifconfig ${netwait_if} failed"
			fi
			sleep 1
			count=$((count+1))
		done
		if [ -n "${link}" ]; then
			# Restore default SIGINT handler
			trap - SIGINT

			echo ''
			warn "Interface still has no link.  Continuing with startup, but"
			warn "be aware you may not have a fully functional networking"
			warn "layer at this point."
			return
		fi
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	for ip in ${netwait_ip}; do
		echo -n "Waiting for ${ip} to respond to ICMP"

		count=1
		while [ ${count} -le ${netwait_timeout} ]; do
			/sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1
			rc=$?

			if [ $rc -eq 0 ]; then
				# Restore default SIGINT handler
				trap - SIGINT

				echo '.'
				return
			fi
			count=$((count+1))
		done
		echo ': No response from host.'
	done

	# Restore default SIGINT handler
	trap - SIGINT

	warn "Exhausted IP list.  Continuing with startup, but be aware you may"
	warn "not have a fully functional networking layer at this point."
}

load_rc_config $name
run_rc_command "$1"
@


1.4.2.1
log
@file netwait was added on branch RELENG_8_4 on 2013-03-28 13:02:44 +0000
@
text
@d1 98
@


1.4.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 98
#!/bin/sh

# $FreeBSD: releng/8.4/etc/rc.d/netwait 231655 2012-02-14 10:17:14Z dougb $
#
# PROVIDE: netwait
# REQUIRE: NETWORKING
# KEYWORD: nojail
#
# The netwait script is intended to be used by systems which have
# statically-configured IP addresses in rc.conf(5).  If your system
# uses DHCP, you should use synchronous_dhclient="YES" in your
# /etc/rc.conf instead of using netwait.

. /etc/rc.subr

name="netwait"
rcvar="netwait_enable"

start_cmd="${name}_start"
stop_cmd=":"

netwait_start()
{
	local ip rc count output link

	if [ -z "${netwait_ip}" ]; then
		err 1 "You must define one or more IP addresses in netwait_ip"
	fi

	if [ ${netwait_timeout} -lt 1 ]; then
		err 1 "netwait_timeout must be >= 1"
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	if [ -n "${netwait_if}" ]; then
		echo -n "Waiting for $netwait_if to have link"

		count=1
		while [ ${count} -le ${netwait_if_timeout} ]; do
			if output=`/sbin/ifconfig ${netwait_if} 2>/dev/null`; then
				link=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'`
				if [ -z "${link}" ]; then
					echo '.'
					break
				fi
			else
				echo ''
				err 1 "ifconfig ${netwait_if} failed"
			fi
			sleep 1
			count=$((count+1))
		done
		if [ -n "${link}" ]; then
			# Restore default SIGINT handler
			trap - SIGINT

			echo ''
			warn "Interface still has no link.  Continuing with startup, but"
			warn "be aware you may not have a fully functional networking"
			warn "layer at this point."
			return
		fi
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	for ip in ${netwait_ip}; do
		echo -n "Waiting for ${ip} to respond to ICMP"

		count=1
		while [ ${count} -le ${netwait_timeout} ]; do
			/sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1
			rc=$?

			if [ $rc -eq 0 ]; then
				# Restore default SIGINT handler
				trap - SIGINT

				echo '.'
				return
			fi
			count=$((count+1))
		done
		echo ': No response from host.'
	done

	# Restore default SIGINT handler
	trap - SIGINT

	warn "Exhausted IP list.  Continuing with startup, but be aware you may"
	warn "not have a fully functional networking layer at this point."
}

load_rc_config $name
run_rc_command "$1"
@


1.3
log
@SVN rev 230099 on 2012-01-14 02:18:41Z by dougb

Prepare for the removal of set_rcvar() by changing the rcvar=
assignments to the literal values it would have returned.

The concept of set_rcvar() was nice in theory, but the forks
it creates are a drag on the startup process, which is especially
noticeable on slower systems, such as embedded ones.

During the discussion on freebsd-rc@@ a preference was expressed for
using ${name}_enable instead of the literal values. However the
code portability concept doesn't really apply since there are so
many other places where the literal name has to be searched for
and replaced. Also, using the literal value is also a tiny bit
faster than dereferencing the variables, and every little bit helps.
@
text
@d3 1
a3 1
# $FreeBSD$
@


1.2
log
@SVN rev 223408 on 2011-06-22 06:27:32Z by dougb

I knew there was something funny about this line
@
text
@d17 1
a17 1
rcvar=`set_rcvar`
@


1.2.6.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.2.6.2
log
@SVN rev 231653 on 2012-02-14 10:16:56Z by dougb

MFC r230099:

Change rcvar= assignments to the literal values set_rcvar
would have returned. This will slightly reduce boot time,
and help in diff reduction to HEAD.
@
text
@d17 1
a17 1
rcvar="netwait_enable"
@


1.2.6.3
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
# $FreeBSD: stable/9/etc/rc.d/netwait 231653 2012-02-14 10:16:56Z dougb $
@


1.2.6.2.2.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.2.6.2.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.1/etc/rc.d/netwait 231653 2012-02-14 10:16:56Z dougb $
@


1.2.6.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.2.6.1.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.0/etc/rc.d/netwait 223408 2011-06-22 06:27:32Z dougb $
@


1.2.4.1
log
@file netwait was added on branch RELENG_7 on 2011-06-25 23:15:10 +0000
@
text
@d1 98
@


1.2.4.2
log
@SVN rev 223553 on 2011-06-25 23:14:49Z by dougb

MFC r223310:

Add the netwait rc.d script. It waits for the specified period for the
network to become active.

MFC r223311, r2233408:

The script itself, and a minor fix to it.
@
text
@a0 98
#!/bin/sh

# $FreeBSD$
#
# PROVIDE: netwait
# REQUIRE: NETWORKING
# KEYWORD: nojail
#
# The netwait script is intended to be used by systems which have
# statically-configured IP addresses in rc.conf(5).  If your system
# uses DHCP, you should use synchronous_dhclient="YES" in your
# /etc/rc.conf instead of using netwait.

. /etc/rc.subr

name="netwait"
rcvar=`set_rcvar`

start_cmd="${name}_start"
stop_cmd=":"

netwait_start()
{
	local ip rc count output link

	if [ -z "${netwait_ip}" ]; then
		err 1 "You must define one or more IP addresses in netwait_ip"
	fi

	if [ ${netwait_timeout} -lt 1 ]; then
		err 1 "netwait_timeout must be >= 1"
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	if [ -n "${netwait_if}" ]; then
		echo -n "Waiting for $netwait_if to have link"

		count=1
		while [ ${count} -le ${netwait_if_timeout} ]; do
			if output=`/sbin/ifconfig ${netwait_if} 2>/dev/null`; then
				link=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'`
				if [ -z "${link}" ]; then
					echo '.'
					break
				fi
			else
				echo ''
				err 1 "ifconfig ${netwait_if} failed"
			fi
			sleep 1
			count=$((count+1))
		done
		if [ -n "${link}" ]; then
			# Restore default SIGINT handler
			trap - SIGINT

			echo ''
			warn "Interface still has no link.  Continuing with startup, but"
			warn "be aware you may not have a fully functional networking"
			warn "layer at this point."
			return
		fi
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	for ip in ${netwait_ip}; do
		echo -n "Waiting for ${ip} to respond to ICMP"

		count=1
		while [ ${count} -le ${netwait_timeout} ]; do
			/sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1
			rc=$?

			if [ $rc -eq 0 ]; then
				# Restore default SIGINT handler
				trap - SIGINT

				echo '.'
				return
			fi
			count=$((count+1))
		done
		echo ': No response from host.'
	done

	# Restore default SIGINT handler
	trap - SIGINT

	warn "Exhausted IP list.  Continuing with startup, but be aware you may"
	warn "not have a fully functional networking layer at this point."
}

load_rc_config $name
run_rc_command "$1"
@


1.2.4.3
log
@SVN rev 231656 on 2012-02-14 10:17:30Z by dougb

MFC r230099:

Change rcvar= assignments to the literal values set_rcvar
would have returned. This will slightly reduce boot time,
and help in diff reduction to HEAD.
@
text
@d17 1
a17 1
rcvar="netwait_enable"
@


1.2.4.4
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: stable/7/etc/rc.d/netwait 231656 2012-02-14 10:17:30Z dougb $
@


1.2.2.1
log
@file netwait was added on branch RELENG_8 on 2011-06-25 23:13:50 +0000
@
text
@d1 98
@


1.2.2.2
log
@SVN rev 223552 on 2011-06-25 23:13:05Z by dougb

MFC r223310:

Add the netwait rc.d script. It waits for the specified period for the
network to become active.

MFC r223311, r2233408:

The script itself, and a minor fix to it.
@
text
@a0 98
#!/bin/sh

# $FreeBSD$
#
# PROVIDE: netwait
# REQUIRE: NETWORKING
# KEYWORD: nojail
#
# The netwait script is intended to be used by systems which have
# statically-configured IP addresses in rc.conf(5).  If your system
# uses DHCP, you should use synchronous_dhclient="YES" in your
# /etc/rc.conf instead of using netwait.

. /etc/rc.subr

name="netwait"
rcvar=`set_rcvar`

start_cmd="${name}_start"
stop_cmd=":"

netwait_start()
{
	local ip rc count output link

	if [ -z "${netwait_ip}" ]; then
		err 1 "You must define one or more IP addresses in netwait_ip"
	fi

	if [ ${netwait_timeout} -lt 1 ]; then
		err 1 "netwait_timeout must be >= 1"
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	if [ -n "${netwait_if}" ]; then
		echo -n "Waiting for $netwait_if to have link"

		count=1
		while [ ${count} -le ${netwait_if_timeout} ]; do
			if output=`/sbin/ifconfig ${netwait_if} 2>/dev/null`; then
				link=`expr "${output}" : '.*[[:blank:]]status: \(no carrier\)'`
				if [ -z "${link}" ]; then
					echo '.'
					break
				fi
			else
				echo ''
				err 1 "ifconfig ${netwait_if} failed"
			fi
			sleep 1
			count=$((count+1))
		done
		if [ -n "${link}" ]; then
			# Restore default SIGINT handler
			trap - SIGINT

			echo ''
			warn "Interface still has no link.  Continuing with startup, but"
			warn "be aware you may not have a fully functional networking"
			warn "layer at this point."
			return
		fi
	fi

	# Handle SIGINT (Ctrl-C); force abort of while() loop
	trap break SIGINT

	for ip in ${netwait_ip}; do
		echo -n "Waiting for ${ip} to respond to ICMP"

		count=1
		while [ ${count} -le ${netwait_timeout} ]; do
			/sbin/ping -t 1 -c 1 -o ${ip} >/dev/null 2>&1
			rc=$?

			if [ $rc -eq 0 ]; then
				# Restore default SIGINT handler
				trap - SIGINT

				echo '.'
				return
			fi
			count=$((count+1))
		done
		echo ': No response from host.'
	done

	# Restore default SIGINT handler
	trap - SIGINT

	warn "Exhausted IP list.  Continuing with startup, but be aware you may"
	warn "not have a fully functional networking layer at this point."
}

load_rc_config $name
run_rc_command "$1"
@


1.2.2.3
log
@SVN rev 231655 on 2012-02-14 10:17:14Z by dougb

MFC r230099:

Change rcvar= assignments to the literal values set_rcvar
would have returned. This will slightly reduce boot time,
and help in diff reduction to HEAD.
@
text
@d17 1
a17 1
rcvar="netwait_enable"
@


1.2.2.4
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
# $FreeBSD: stable/8/etc/rc.d/netwait 231655 2012-02-14 10:17:14Z dougb $
@


1.2.2.3.2.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.2.2.3.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/8.3/etc/rc.d/netwait 231655 2012-02-14 10:17:14Z dougb $
@


1.1
log
@SVN rev 223311 on 2011-06-19 22:59:54Z by dougb

Blah, forgot to svn add the actual script from r223310
@
text
@d17 2
a18 1
rc_var=`set_rcvar`
@

