1#!/bin/sh 2# |
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 |
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 23set_rcvar_obsolete ipv6_enable ipv6_prefer 24 25ip6addrctl_prefer_ipv6() 26{ |
27 afexists inet6 || return 0 28 |
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 |
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{ |
53 afexists inet6 || return 0 |
54 |
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 |
63 else |
64 ip6addrctl_prefer_ipv4 |
65 fi 66 fi 67} 68 69ip6addrctl_stop() 70{ |
71 afexists inet6 || return 0 72 73 ip6addrctl flush >/dev/null 2>&1 |
74} 75 76load_rc_config $name 77run_rc_command "$1" |