From 9c5433cb225f7a4e56e87623ea2e4011179553a5 Mon Sep 17 00:00:00 2001 From: gordon Date: Thu, 13 Jun 2002 22:14:37 +0000 Subject: Merge in all the changes that Mike Makonnen has been maintaining for a while. This is only the script pieces, the glue for the build comes next. Submitted by: Mike Makonnen Reviewed by: silence on -current and -hackers Prodded by: rwatson --- etc/rc.d/rtadvd | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 60 insertions(+), 4 deletions(-) (limited to 'etc/rc.d/rtadvd') diff --git a/etc/rc.d/rtadvd b/etc/rc.d/rtadvd index 7347035..8317e33 100755 --- a/etc/rc.d/rtadvd +++ b/etc/rc.d/rtadvd @@ -1,25 +1,81 @@ #!/bin/sh # -# $NetBSD: rtadvd,v 1.3 2000/05/13 08:45:09 lukem Exp $ +# $NetBSD: rtadvd,v 1.5 2002/03/22 04:34:00 thorpej Exp $ +# $FreeBSD$ # # PROVIDE: rtadvd # REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: FreeBSD NetBSD . /etc/rc.subr name="rtadvd" -rcvar=$name +rcvar=`set_rcvar` command="/usr/sbin/${name}" start_precmd="rtadvd_precmd" +case `${CMD_OSTYPE}` in +FreeBSD) + IS_GATEWAY="checkyesno ipv6_gateway_enable" + ;; +NetBSD) + IS_GATEWAY="eval [ \"$ip6mode\" = \"router\" ]" + ;; +esac + rtadvd_precmd() { - if [ "$ip6mode" != "router" ]; then + if ! ${IS_GATEWAY} ; then warn \ - "${name} cannot be used on IPv6 host, only on an IPv6 router." + "${name} cannot be used on IPv6 host, only on an IPv6 router." return 1 fi + + # This should be enabled with a great care. + # You may want to fine-tune /etc/rtadvd.conf. + # + # And if you wish your rtadvd to receive and process + # router renumbering messages, specify your Router Renumbering + # security policy by -R option. + # + # See `man 3 ipsec_set_policy` for IPsec policy specification + # details. + # (CAUTION: This enables your routers prefix renumbering + # from another machine, so if you enable this, do it with + # enough care.) + # + case `${CMD_OSTYPE}` in + FreeBSD) + # If specific interfaces haven't been specified, + # get a list of interfaces and enable it on them + # + case ${rtadvd_interfaces} in + '') + for i in `ifconfig -l` ; do + case $i in + lo0|gif[0-9]*|stf[0-9]*|faith[0-9]*|lp[0-9]*|sl[0-9]*|tun[0-9]*) + continue + ;; + *) + rtadvd_interfaces="${rtadvd_interfaces} ${i}" + ;; + esac + done + ;; + esac + command_args="${rtadvd_interfaces}" + + # Enable Router Renumbering, unicast case + # (use correct src/dst addr) + # rtadvd -R "in ipsec ah/transport/fec0:0:0:1::1-fec0:0:0:10::1/require" ${ipv6_network_interfaces} + # Enable Router Renumbering, multicast case + # (use correct src addr) + # rtadvd -R "in ipsec ah/transport/ff05::2-fec0:0:0:10::1/require" ${ipv6_network_interfaces} + ;; + esac + return 0 } load_rc_config $name -- cgit v1.1