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