Author: hrs
Date: Sat May 11 19:11:20 2013
New Revision: 250524
URL: http://svnweb.freebsd.org/changeset/base/250524

Log:
  MFC r250240:
  
  - Fix exit status when ip6addrctl_verbose=yes [*]
  - Use the absolute pathname for ip6addrctl.
  - Use "install" instead of "add" to reduce the number of invocations.
  
  Reported by:  Tatsuki Makino [*]
  PR:           conf/175006 [*]

Modified:
  stable/9/etc/rc.d/ip6addrctl
Directory Properties:
  stable/9/etc/rc.d/   (props changed)

Modified: stable/9/etc/rc.d/ip6addrctl
==============================================================================
--- stable/9/etc/rc.d/ip6addrctl        Sat May 11 19:05:38 2013        
(r250523)
+++ stable/9/etc/rc.d/ip6addrctl        Sat May 11 19:11:20 2013        
(r250524)
@@ -24,38 +24,42 @@ config_file="/etc/ip6addrctl.conf"
 set_rcvar_obsolete ipv6_enable ipv6_activate_all_interfaces
 set_rcvar_obsolete ipv6_prefer ip6addrctl_policy
 
+IP6ADDRCTL_CMD="/usr/sbin/ip6addrctl"
+
 ip6addrctl_prefer_ipv6()
 {
        afexists inet6 || return 0
 
-       ip6addrctl flush >/dev/null 2>&1
-       ip6addrctl add ::1/128           50      0
-       ip6addrctl add ::/0              40      1
-       ip6addrctl add ::ffff:0:0/96     35      4
-       ip6addrctl add 2002::/16         30      2
-       ip6addrctl add 2001::/32          5      5
-       ip6addrctl add fc00::/7           3     13
-       ip6addrctl add ::/96              1      3
-       ip6addrctl add fec0::/10          1     11
-       ip6addrctl add 3ffe::/16          1     12
-       checkyesno ip6addrctl_verbose && ip6addrctl
+       ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1
+       cat <<EOT | ${IP6ADDRCTL_CMD} install /dev/stdin
+       ::1/128          50      0
+       ::/0             40      1
+       ::ffff:0:0/96    35      4
+       2002::/16        30      2
+       2001::/32         5      5
+       fc00::/7          3     13
+       ::/96             1      3
+       fec0::/10         1     11
+       3ffe::/16         1     12
+EOT
 }
 
 ip6addrctl_prefer_ipv4()
 {
        afexists inet6 || return 0
 
-       ip6addrctl flush >/dev/null 2>&1
-       ip6addrctl add ::1/128           50      0
-       ip6addrctl add ::/0              40      1
-       ip6addrctl add ::ffff:0:0/96    100      4
-       ip6addrctl add 2002::/16         30      2
-       ip6addrctl add 2001::/32          5      5
-       ip6addrctl add fc00::/7           3     13
-       ip6addrctl add ::/96              1      3
-       ip6addrctl add fec0::/10          1     11
-       ip6addrctl add 3ffe::/16          1     12
-       checkyesno ip6addrctl_verbose && ip6addrctl
+       ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1
+       cat <<EOT | ${IP6ADDRCTL_CMD} install /dev/stdin
+       ::1/128          50      0
+       ::/0             40      1
+       ::ffff:0:0/96   100      4
+       2002::/16        30      2
+       2001::/32         5      5
+       fc00::/7          3     13
+       ::/96             1      3
+       fec0::/10         1     11
+       3ffe::/16         1     12
+EOT
 }
 
 ip6addrctl_start()
@@ -66,9 +70,8 @@ ip6addrctl_start()
        case "${ip6addrctl_policy}" in
        [Aa][Uu][Tt][Oo])
                if [ -r "${config_file}" -a -s "${config_file}" ]; then
-                       ip6addrctl flush >/dev/null 2>&1
-                       ip6addrctl install "${config_file}"
-                       checkyesno ip6addrctl_verbose && ip6addrctl
+                       ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1
+                       ${IP6ADDRCTL_CMD} install "${config_file}"
                else
                        if checkyesno ipv6_activate_all_interfaces; then
                                ip6addrctl_prefer_ipv6
@@ -92,7 +95,7 @@ ip6addrctl_start()
                ip6addrctl_prefer_ipv4
        ;;
        [Nn][Oo][Nn][Ee])
-               ip6addrctl flush >/dev/null 2>&1
+               ${IP6ADDRCTL_CMD} flush >/dev/null 2>&1
        ;;
        *)
                warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \
@@ -100,6 +103,11 @@ ip6addrctl_start()
                ip6addrctl_prefer_ipv4
        ;;
        esac
+
+       if checkyesno ip6addrctl_verbose; then
+               echo 'Address selection policy table for IPv4 and IPv6:'
+               ${IP6ADDRCTL_CMD}
+       fi
 }
 
 ip6addrctl_stop()
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to