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