[BACK]Return to rtadvd CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc / rc.d

File: [cvs.NetBSD.org] / src / etc / rc.d / rtadvd (download)

Revision 1.10, Sat Nov 19 01:14:58 2016 UTC (7 years, 5 months ago) by kre
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, is-mlppp-base, is-mlppp, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Changes since 1.9: +2 -2 lines


Undo change to a comment made when I thought another change to the
script was needed ... the unnecessary script change was never committed,
but the comment that described it was...    No functional change.

#!/bin/sh
#
# $NetBSD: rtadvd,v 1.10 2016/11/19 01:14:58 kre Exp $
#

# PROVIDE: rtadvd
# REQUIRE: DAEMON
# BEFORE:  LOGIN

$_rc_subr_loaded . /etc/rc.subr

name=rtadvd
rcvar=$name
command="/usr/sbin/$name"
pidfile="/var/run/$name.pid"
extra_commands=reload
start_precmd=rtadvd_prestart
reload_precmd=rtadvd_prereload

rtadvd_prereload()
{
	local chdir="$(getent passwd _rtadvd | cut -d: -f6)"
	local conf=/etc/rtadvd.conf myflags o confdir
	local cflag=false
	
	[ -z "${chdir}" ] || [ "/${chdir}" = // ] && return 0

	if [ -n "${flags}" ]; then
		myflags=${flags}
	else
		eval myflags=\$${name}_flags
	fi
	set -- ${myflags}
	while getopts c:dDfM:Rs o; do
		# ignore other args, they are processed by rtadvd itself
		case "${o}" in
		c)	conf="${OPTARG}"
			case "${conf}" in
			/*)	;;
			*)	echo "${name}: config file (${conf}) must be" \
					"full pathname"
				return 1
				;;
			esac
			cflag=true;;
		esac
	done

	${cflag} || test -f "${conf}" && {
		confdir=$(dirname "${conf}")
		echo "${name}: copying ${conf} to ${chdir}${conf}"
		mkdir -p "${chdir}${confdir}"
		cp "${conf}" "${chdir}${conf}" || return 1
	}

	# Make sure /var/run exists in the chroot
	mkdir -p "${chdir}/var/run"

	# Provide a link to the chrooted dump file
	ln -snf "${chdir}/var/run/${name}.dump" /var/run

	# Note: actual chroot is done by rtadvd itself

	return 0
}

rtadvd_prestart()
{
	if [ "$ip6mode" != router ]; then
		warn \
	"${name} cannot be used on IPv6 host, only on an IPv6 router."
		return 1
	fi

	rtadvd_prereload
}

load_rc_config $name
run_rc_command "$1"