ip6addrctl revision 206408
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/ip6addrctl 206408 2010-04-09 01:35:09Z dougb $ 4# 5 6# PROVIDE: ip6addrctl 7# REQUIRE: FILESYSTEMS 8# BEFORE: netif 9# KEYWORD: nojail 10 11. /etc/rc.subr 12. /etc/network.subr 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 23ip6addrctl_prefer_ipv6() 24{ 25 afexists inet6 || return 0 26 27 ip6addrctl flush >/dev/null 2>&1 28 ip6addrctl add ::1/128 50 0 29 ip6addrctl add ::/0 40 1 30 ip6addrctl add 2002::/16 30 2 31 ip6addrctl add ::/96 20 3 32 ip6addrctl add ::ffff:0:0/96 10 4 33 checkyesno ip6addrctl_verbose && ip6addrctl 34} 35 36ip6addrctl_prefer_ipv4() 37{ 38 afexists inet6 || return 0 39 40 ip6addrctl flush >/dev/null 2>&1 41 ip6addrctl add ::ffff:0:0/96 50 0 42 ip6addrctl add ::1/128 40 1 43 ip6addrctl add ::/0 30 2 44 ip6addrctl add 2002::/16 20 3 45 ip6addrctl add ::/96 10 4 46 checkyesno ip6addrctl_verbose && ip6addrctl 47} 48 49ip6addrctl_start() 50{ 51 afexists inet6 || return 0 52 53 # install the policy of the address selection algorithm. 54 if [ -f /etc/ip6addrctl.conf ]; then 55 ip6addrctl flush >/dev/null 2>&1 56 ip6addrctl install /etc/ip6addrctl.conf 57 checkyesno ip6addrctl_verbose && ip6addrctl 58 else 59 if checkyesno ipv6_prefer; then 60 ip6addrctl_prefer_ipv6 61 else 62 ip6addrctl_prefer_ipv4 63 fi 64 fi 65} 66 67ip6addrctl_stop() 68{ 69 afexists inet6 || return 0 70 71 ip6addrctl flush >/dev/null 2>&1 72} 73 74load_rc_config $name 75run_rc_command "$1" 76