head	1.7;
access;
symbols
	RELENG_8_4:1.7.0.2
	RELENG_9_1_0_RELEASE:1.5.16.2.2.2
	RELENG_9_1:1.5.16.2.0.2
	RELENG_9_1_BP:1.5.16.2
	RELENG_8_3_0_RELEASE:1.5.10.2.2.1
	RELENG_8_3:1.5.10.2.0.2
	RELENG_8_3_BP:1.5.10.2
	RELENG_9_0_0_RELEASE:1.5.16.1.2.1
	RELENG_9_0:1.5.16.1.0.2
	RELENG_9_0_BP:1.5.16.1
	RELENG_9:1.5.0.16
	RELENG_9_BP:1.5
	RELENG_7_4_0_RELEASE:1.5.14.1
	RELENG_8_2_0_RELEASE:1.5.10.1.6.1
	RELENG_7_4:1.5.0.14
	RELENG_7_4_BP:1.5
	RELENG_8_2:1.5.10.1.0.6
	RELENG_8_2_BP:1.5.10.1
	RELENG_8_1_0_RELEASE:1.5.10.1.4.1
	RELENG_8_1:1.5.10.1.0.4
	RELENG_8_1_BP:1.5.10.1
	RELENG_7_3_0_RELEASE:1.5.12.1
	RELENG_7_3:1.5.0.12
	RELENG_7_3_BP:1.5
	RELENG_8_0_0_RELEASE:1.5.10.1.2.1
	RELENG_8_0:1.5.10.1.0.2
	RELENG_8_0_BP:1.5.10.1
	RELENG_8:1.5.0.10
	RELENG_8_BP:1.5
	RELENG_7_2_0_RELEASE:1.5.8.1
	RELENG_7_2:1.5.0.8
	RELENG_7_2_BP:1.5
	RELENG_7_1_0_RELEASE:1.5.6.1
	RELENG_6_4_0_RELEASE:1.3.2.1.4.1
	RELENG_7_1:1.5.0.6
	RELENG_7_1_BP:1.5
	RELENG_6_4:1.3.2.1.0.4
	RELENG_6_4_BP:1.3.2.1
	RELENG_7_0_0_RELEASE:1.5
	RELENG_6_3_0_RELEASE:1.3.2.1
	RELENG_7_0:1.5.0.4
	RELENG_7_0_BP:1.5
	RELENG_6_3:1.3.2.1.0.2
	RELENG_6_3_BP:1.3.2.1
	RELENG_7:1.5.0.2
	RELENG_7_BP:1.5
	RELENG_6_2_0_RELEASE:1.3
	RELENG_6_2:1.3.0.8
	RELENG_6_2_BP:1.3
	RELENG_5_5_0_RELEASE:1.1.2.1
	RELENG_5_5:1.1.2.1.0.6
	RELENG_5_5_BP:1.1.2.1
	RELENG_6_1_0_RELEASE:1.3
	RELENG_6_1:1.3.0.6
	RELENG_6_1_BP:1.3
	RELENG_6_0_0_RELEASE:1.3
	RELENG_6_0:1.3.0.4
	RELENG_6_0_BP:1.3
	RELENG_6:1.3.0.2
	RELENG_6_BP:1.3
	RELENG_5_4_0_RELEASE:1.1.2.1
	RELENG_5_4:1.1.2.1.0.4
	RELENG_5_4_BP:1.1.2.1
	RELENG_5_3_0_RELEASE:1.1.2.1
	RELENG_5_3:1.1.2.1.0.2
	RELENG_5_3_BP:1.1.2.1
	RELENG_5:1.1.0.2
	RELENG_5_BP:1.1;
locks; strict;
comment	@# @;


1.7
date	2012.11.17.01.49.05;	author svnexp;	state Exp;
branches
	1.7.2.1;
next	1.6;

1.6
date	2012.01.14.02.18.41;	author dougb;	state Exp;
branches;
next	1.5;

1.5
date	2006.12.31.10.37.18;	author yar;	state Exp;
branches
	1.5.2.1
	1.5.6.1
	1.5.8.1
	1.5.10.1
	1.5.12.1
	1.5.14.1
	1.5.16.1;
next	1.4;

1.4
date	2006.07.25.17.25.44;	author yar;	state Exp;
branches;
next	1.3;

1.3
date	2004.10.22.19.36.03;	author andre;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2004.10.07.13.55.26;	author mtm;	state Exp;
branches;
next	1.1;

1.1
date	2004.04.05.16.29.45;	author fjoe;	state Exp;
branches
	1.1.2.1;
next	;

1.7.2.1
date	2012.11.17.01.49.05;	author svnexp;	state dead;
branches;
next	1.7.2.2;

1.7.2.2
date	2013.03.28.13.02.43;	author svnexp;	state Exp;
branches;
next	;

1.5.2.1
date	2012.02.14.10.17.30;	author dougb;	state Exp;
branches;
next	1.5.2.2;

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

1.5.6.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.5.8.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.5.10.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.5.10.1.2.1
	1.5.10.1.4.1
	1.5.10.1.6.1;
next	1.5.10.2;

1.5.10.2
date	2012.02.14.10.17.14;	author dougb;	state Exp;
branches
	1.5.10.2.2.1;
next	1.5.10.3;

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

1.5.10.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.5.10.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.5.10.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.5.10.2.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.5.10.2.2.2;

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

1.5.12.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.5.14.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.5.14.2;

1.5.14.2
date	2012.11.17.08.16.37;	author svnexp;	state Exp;
branches;
next	;

1.5.16.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.5.16.1.2.1;
next	1.5.16.2;

1.5.16.2
date	2012.02.14.10.16.56;	author dougb;	state Exp;
branches
	1.5.16.2.2.1;
next	1.5.16.3;

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

1.5.16.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.5.16.1.2.2;

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

1.5.16.2.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.5.16.2.2.2;

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

1.3.2.1
date	2006.12.20.12.23.57;	author yar;	state Exp;
branches
	1.3.2.1.4.1;
next	1.3.2.2;

1.3.2.2
date	2012.11.17.07.39.08;	author svnexp;	state Exp;
branches;
next	;

1.3.2.1.4.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;

1.1.2.1
date	2004.10.10.09.50.53;	author mtm;	state Exp;
branches;
next	;


desc
@@


1.7
log
@Switching exporter and resync
@
text
@#!/bin/sh
#
# $FreeBSD: head/etc/rc.d/natd 230099 2012-01-14 02:18:41Z dougb $
#

# PROVIDE: natd
# KEYWORD: nostart nojail

. /etc/rc.subr
. /etc/network.subr

name="natd"
rcvar="natd_enable"
command="/sbin/${name}"
pidfile="/var/run/${name}.pid"
start_precmd="natd_precmd"
required_modules="ipdivert"

natd_precmd()
{
	if [ -n "${natd_interface}" ]; then
		dhcp_list="`list_net_interfaces dhcp`"
		for ifn in ${dhcp_list}; do
			case "${natd_interface}" in
			${ifn})
				rc_flags="$rc_flags -dynamic"
				;;
			esac
		done

		if echo "${natd_interface}" | \
		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
			rc_flags="$rc_flags -a ${natd_interface}"
		else
			rc_flags="$rc_flags -n ${natd_interface}"
		fi
	fi

	return 0
}

load_rc_config $name
run_rc_command "$1"
@


1.7.2.1
log
@file natd was added on branch RELENG_8_4 on 2013-03-28 13:02:43 +0000
@
text
@d1 43
@


1.7.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 43
#!/bin/sh
#
# $FreeBSD: releng/8.4/etc/rc.d/natd 231655 2012-02-14 10:17:14Z dougb $
#

# PROVIDE: natd
# KEYWORD: nostart nojail

. /etc/rc.subr
. /etc/network.subr

name="natd"
rcvar="natd_enable"
command="/sbin/${name}"
pidfile="/var/run/${name}.pid"
start_precmd="natd_precmd"
required_modules="ipdivert"

natd_precmd()
{
	if [ -n "${natd_interface}" ]; then
		dhcp_list="`list_net_interfaces dhcp`"
		for ifn in ${dhcp_list}; do
			case "${natd_interface}" in
			${ifn})
				rc_flags="$rc_flags -dynamic"
				;;
			esac
		done

		if echo "${natd_interface}" | \
		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
			rc_flags="$rc_flags -a ${natd_interface}"
		else
			rc_flags="$rc_flags -n ${natd_interface}"
		fi
	fi

	return 0
}

load_rc_config $name
run_rc_command "$1"
@


1.6
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.5
log
@Use $required_modules wherever suitable.  Use load_kld() in special
cases.  So we get rid of quite a few lines of duplicated code.
@
text
@d13 1
a13 1
rcvar=`set_rcvar`
@


1.5.2.1
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
@d13 1
a13 1
rcvar="natd_enable"
@


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


1.5.16.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.5.16.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
@d13 1
a13 1
rcvar="natd_enable"
@


1.5.16.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/natd 231653 2012-02-14 10:16:56Z dougb $
@


1.5.16.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.5.16.2.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.1/etc/rc.d/natd 231653 2012-02-14 10:16:56Z dougb $
@


1.5.16.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.5.16.1.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.0/etc/rc.d/natd 180563 2008-07-16 19:22:48Z dougb $
@


1.5.14.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.5.14.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/7.4/etc/rc.d/natd 165683 2006-12-31 10:37:18Z yar $
@


1.5.12.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.5.10.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.5.10.2
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
@d13 1
a13 1
rcvar="natd_enable"
@


1.5.10.3
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/natd 231655 2012-02-14 10:17:14Z dougb $
@


1.5.10.2.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.5.10.2.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/8.3/etc/rc.d/natd 231655 2012-02-14 10:17:14Z dougb $
@


1.5.10.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.5.10.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.5.10.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.5.8.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.5.6.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.4
log
@Use more rc.subr(8) features.
Skip useless work when ${natd_interface} is unset.
Double quote user-supplied vars unless there is a reason not to.
@
text
@d17 1
a20 7
	if ! ${SYSCTL} net.inet.divert > /dev/null 2>&1; then
		if ! kldload ipdivert; then
			warn unable to load IPDIVERT module.
			return 1
		fi
	fi

@


1.3
log
@Automatically load the ipdivert module if it was not compiled into the kernel
and natd_enable is true.
@
text
@d15 1
a16 1
start_cmd="natd_start"
d27 9
a35 2
	return 0
}
d37 3
a39 16
natd_start()
{
	dhcp_list="`list_net_interfaces dhcp`"
	for ifn in ${dhcp_list}; do
		case ${natd_interface} in
		${ifn})
			natd_flags="$natd_flags -dynamic"
			;;
		*)
			;;
		esac
	done
	if [ -n "${natd_interface}" ]; then
		if echo ${natd_interface} | \
		grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
			natd_flags="$natd_flags -a ${natd_interface}"
d41 1
a41 1
			natd_flags="$natd_flags -n ${natd_interface}"
d44 2
a45 2
	echo -n ' natd'
	${natd_program:-/sbin/natd} ${natd_flags} ${natd_ifarg}
@


1.3.2.1
log
@MFC rev. 1.4:

  Use more rc.subr(8) features.
  Skip useless work when ${natd_interface} is unset.
  Double quote user-supplied vars unless there is a reason not to.
@
text
@a14 1
pidfile="/var/run/${name}.pid"
d16 1
d27 15
d43 3
a45 12
		dhcp_list="`list_net_interfaces dhcp`"
		for ifn in ${dhcp_list}; do
			case "${natd_interface}" in
			${ifn})
				rc_flags="$rc_flags -dynamic"
				;;
			esac
		done

		if echo "${natd_interface}" | \
		    grep -q -E '^[0-9]+(\.[0-9]+){0,3}$'; then
			rc_flags="$rc_flags -a ${natd_interface}"
d47 1
a47 1
			rc_flags="$rc_flags -n ${natd_interface}"
d50 2
a51 2

	return 0
@


1.3.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: stable/6/etc/rc.d/natd 165385 2006-12-20 12:23:57Z yar $
@


1.3.2.1.4.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.2
log
@Remove the requirement for the FreeBSD keyword as it no longer
makes any sense.

Discussed with: dougb, brooks
MFC after: 3 days
@
text
@d15 1
d17 12
@


1.1
log
@Add separate script for natd. This fixes race condition with "ipfw restart"
(when new natd is started before old natd died) and allows to manage natd
without touching ipfw.

natd should probably be killed with SIGKILL when stopping natd.
@
text
@d7 1
a7 1
# KEYWORD: FreeBSD nostart nojail
@


1.1.2.1
log
@RCS file: /home/ncvs/src/etc/rc,v
----------------------------
revision 1.335
date: 2004/10/08 14:23:49;  author: mtm;  state: Exp;  lines: +0 -1
Remove an unused variable.

Submitted by: Pawel Worach <pawel.worach@@telia.com>
----------------------------
revision 1.334
date: 2004/10/07 13:55:25;  author: mtm;  state: Exp;  lines: +1 -1
Remove the requirement for the FreeBSD keyword as it no longer
makes any sense.

Discussed with: dougb, brooks
MFC after: 3 days
=============================================================================
RCS file: /home/ncvs/src/etc/rc.d/nsswitch,v
----------------------------
revision 1.4
date: 2004/09/16 17:03:12;  author: keramida;  state: Exp;  lines: +1 -1
Fix requirement of `network' to `NETWORK' because the former isn't
provided by any rc.d script.

Approved by:	mtm
=============================================================================
RCS file: /home/ncvs/src/etc/rc.d/pflog,v
----------------------------
revision 1.3
date: 2004/09/16 17:04:20;  author: keramida;  state: Exp;  lines: +1 -1
We don't have any providers of `beforenetlkm' in FreeBSD.  Remove the
dependency to it from our rc.d scripts.

Approved by:	mtm
=============================================================================

Approved by: re/scottl
@
text
@d7 1
a7 1
# KEYWORD: nostart nojail
@


