ip6addrctl revision 197526
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/ip6addrctl 197526 2009-09-26 18:59:00Z hrs $ 4# 5 6# PROVIDE: ip6addrctl 7# REQUIRE: FILESYSTEMS 8# BEFORE: netif 9# KEYWORD: nojail 10 11. /etc/rc.subr 12 13name="ip6addrctl" 14rcvar=`set_rcvar` 15start_cmd="ip6addrctl_start" 16stop_cmd="ip6addrctl_stop" 17extra_commands="status prefer_ipv6 prefer_ipv4" 18status_cmd="ip6addrctl" 19prefer_ipv6_cmd="ip6addrctl_prefer_ipv6" 20prefer_ipv4_cmd="ip6addrctl_prefer_ipv4" 21 22set_rcvar_obsolete ipv6_enable ipv6_prefer 23 24ip6addrctl_prefer_ipv6() 25{ 26 ip6addrctl flush >/dev/null 2>&1 27 ip6addrctl add ::1/128 50 0 28 ip6addrctl add ::/0 40 1 29 ip6addrctl add 2002::/16 30 2 30 ip6addrctl add ::/96 20 3 31 ip6addrctl add ::ffff:0:0/96 10 4 32 checkyesno ip6addrctl_verbose && ip6addrctl 33} 34 35ip6addrctl_prefer_ipv4() 36{ 37 ip6addrctl flush >/dev/null 2>&1 38 ip6addrctl add ::ffff:0:0/96 50 0 39 ip6addrctl add ::1/128 40 1 40 ip6addrctl add ::/0 30 2 41 ip6addrctl add 2002::/16 20 3 42 ip6addrctl add ::/96 10 4 43 checkyesno ip6addrctl_verbose && ip6addrctl 44} 45 46ip6addrctl_start() 47{ 48 if ifconfig lo0 inet6 >/dev/null 2>&1; then 49 # We have IPv6 support in kernel. 50 51 # install the policy of the address selection algorithm. 52 if [ -f /etc/ip6addrctl.conf ]; then 53 ip6addrctl flush >/dev/null 2>&1 54 ip6addrctl install /etc/ip6addrctl.conf 55 checkyesno ip6addrctl_verbose && ip6addrctl 56 else 57 if checkyesno ipv6_prefer; then 58 ip6addrctl_prefer_ipv6 59 else 60 ip6addrctl_prefer_ipv4 61 fi 62 fi 63 fi 64} 65 66ip6addrctl_stop() 67{ 68 if ifconfig lo0 inet6 >/dev/null 2>&1; then 69 # We have IPv6 support in kernel. 70 ip6addrctl flush >/dev/null 2>&1 71 fi 72} 73 74load_rc_config $name 75run_rc_command "$1" 76