xref: /minix3/etc/rc.d/rtadvd (revision 8f957290eb976b379733d0b3811fcb43f8fbaf1a)
1*8f957290SDavid van Moolenbroek#!/bin/sh
2*8f957290SDavid van Moolenbroek#
3*8f957290SDavid van Moolenbroek# $NetBSD: rtadvd,v 1.8 2013/07/09 09:34:58 roy Exp $
4*8f957290SDavid van Moolenbroek#
5*8f957290SDavid van Moolenbroek
6*8f957290SDavid van Moolenbroek# PROVIDE: rtadvd
7*8f957290SDavid van Moolenbroek# REQUIRE: DAEMON
8*8f957290SDavid van Moolenbroek# BEFORE:  LOGIN
9*8f957290SDavid van Moolenbroek
10*8f957290SDavid van Moolenbroek$_rc_subr_loaded . /etc/rc.subr
11*8f957290SDavid van Moolenbroek
12*8f957290SDavid van Moolenbroekname=rtadvd
13*8f957290SDavid van Moolenbroekrcvar=$name
14*8f957290SDavid van Moolenbroekcommand="/usr/sbin/$name"
15*8f957290SDavid van Moolenbroekpidfile="/var/run/$name.pid"
16*8f957290SDavid van Moolenbroekextra_commands=reload
17*8f957290SDavid van Moolenbroekstart_precmd=rtadvd_prestart
18*8f957290SDavid van Moolenbroekreload_precmd=rtadvd_prereload
19*8f957290SDavid van Moolenbroek
20*8f957290SDavid van Moolenbroekrtadvd_prereload()
21*8f957290SDavid van Moolenbroek{
22*8f957290SDavid van Moolenbroek	local chdir="$(getent passwd _rtadvd | cut -d: -f6)"
23*8f957290SDavid van Moolenbroek	local conf=/etc/rtadvd.conf myflags o confdir
24*8f957290SDavid van Moolenbroek
25*8f957290SDavid van Moolenbroek	[ -z "$chdir" -o "$chdir" = / ] && return 0
26*8f957290SDavid van Moolenbroek
27*8f957290SDavid van Moolenbroek	if [ -n "$flags" ]; then
28*8f957290SDavid van Moolenbroek		myflags=$flags
29*8f957290SDavid van Moolenbroek	else
30*8f957290SDavid van Moolenbroek		eval myflags=\$${name}_flags
31*8f957290SDavid van Moolenbroek	fi
32*8f957290SDavid van Moolenbroek	set -- ${myflags}
33*8f957290SDavid van Moolenbroek	while getopts c:dDfM:Rs o; do
34*8f957290SDavid van Moolenbroek		case "$1" in
35*8f957290SDavid van Moolenbroek		-c)	conf="$OPTARG";;
36*8f957290SDavid van Moolenbroek		esac
37*8f957290SDavid van Moolenbroek		shift
38*8f957290SDavid van Moolenbroek	done
39*8f957290SDavid van Moolenbroek	confdir=$(dirname "$conf")
40*8f957290SDavid van Moolenbroek
41*8f957290SDavid van Moolenbroek	echo "$name: copying $conf to $chdir$conf"
42*8f957290SDavid van Moolenbroek	cp "$conf" "$chdir$conf"
43*8f957290SDavid van Moolenbroek
44*8f957290SDavid van Moolenbroek	# Provide a link to the chrooted dump file
45*8f957290SDavid van Moolenbroek	ln -snf "$chdir/var/run/$name.dump" /var/run
46*8f957290SDavid van Moolenbroek}
47*8f957290SDavid van Moolenbroek
48*8f957290SDavid van Moolenbroekrtadvd_prestart()
49*8f957290SDavid van Moolenbroek{
50*8f957290SDavid van Moolenbroek	if [ "$ip6mode" != router ]; then
51*8f957290SDavid van Moolenbroek		warn \
52*8f957290SDavid van Moolenbroek	"${name} cannot be used on IPv6 host, only on an IPv6 router."
53*8f957290SDavid van Moolenbroek		return 1
54*8f957290SDavid van Moolenbroek	fi
55*8f957290SDavid van Moolenbroek
56*8f957290SDavid van Moolenbroek	rtadvd_prereload
57*8f957290SDavid van Moolenbroek}
58*8f957290SDavid van Moolenbroek
59*8f957290SDavid van Moolenbroekload_rc_config $name
60*8f957290SDavid van Moolenbroekrun_rc_command "$1"
61