diff --git a/etc/rc.d/Makefile b/etc/rc.d/Makefile index b25b5cd4ee20..c790741f79a5 100755 --- a/etc/rc.d/Makefile +++ b/etc/rc.d/Makefile @@ -15,7 +15,7 @@ FILES= DAEMON LOGIN NETWORKING SERVERS \ gbde \ hostname \ inetd initdiskless initrandom \ - ip6fw ipfilter ipfs ipfw ipmon \ + ip6addrctl ip6fw ipfilter ipfs ipfw ipmon \ ipnat ipsec ipxrouted isdnd \ jail \ kadmind kerberos keyserv kldxref kpasswdd \ diff --git a/etc/rc.d/ip6addrctl b/etc/rc.d/ip6addrctl new file mode 100644 index 000000000000..26b8365a5e66 --- /dev/null +++ b/etc/rc.d/ip6addrctl @@ -0,0 +1,33 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: ip6addrctl +# REQUIRE: mountcritlocal netif +# BEFORE: network_ipv6 +# KEYWORD: FreeBSD + +. /etc/rc.subr +. /etc/network.subr + +name="ip6addrctl" +start_cmd="ip6addrctl_start" +stop_cmd=':' + +ip6addrctl_start() +{ + if ifconfig lo0 inet6 >/dev/null 2>&1; then + # We have IPv6 support in kernel. + + # install the policy of the address selection algorithm. + if [ -f /etc/ip6addrctl.conf ]; then + ip6addrctl flush >/dev/null 2>&1 + ip6addrctl install /etc/ip6addrctl.conf + ip6addrctl + fi + fi +} + +load_rc_config $name +run_rc_command "$1"