Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Dec 2012 11:11:13 GMT
From:      Kimmo Paasiala <kpaasial@gmail.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   conf/174225: A patch to add support for ipv6_addrs_IF style aliases to rc.conf(5)
Message-ID:  <201212061111.qB6BBDeh052459@red.freebsd.org>
Resent-Message-ID: <201212061120.qB6BK0bq039380@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         174225
>Category:       conf
>Synopsis:       A patch to add support for ipv6_addrs_IF style aliases to rc.conf(5)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Dec 06 11:20:00 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Kimmo Paasiala
>Release:        9-STABLE
>Organization:
>Environment:
FreeBSD whitezone.rdnzl.info 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #0 r243704: Sat Dec  1 00:04:23 EET 2012     root@whitezone.rdnzl.info:/usr/obj/usr/src/sys/RDNZL  amd64
>Description:
The attached patch adds support for ipv6_addrs_IF style aliases in rc.conf(5) to match ipv4_addrs_IF aliases that are already supported.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- network.subr.orig	2012-12-04 16:36:54.777519679 +0200
+++ network.subr	2012-12-04 16:37:15.578523530 +0200
@@ -562,6 +562,7 @@
 	fi
 
 	ifalias_up ${_if} inet6 && _ret=0
+	ipv6_addrs_common ${_if} alias && _ret=0
 	ipv6_prefix_hostid_addr_common ${_if} alias && _ret=0
 	ipv6_accept_rtadv_up ${_if} && _ret=0
 
@@ -684,6 +685,31 @@
 	return $_ret
 }
 
+
+ipv6_addrs_common()
+{
+	local _ret _if _action _ip6prefix _ip6prefixes
+	local _ip6addr _prefixlen
+	_ret=1
+	_if=$1
+	_action=$2
+
+# get the prefixes from ipv6_addrs_IF variable
+	_ip6prefixes=`get_if_var $_if ipv6_addrs_IF`
+	for _ip6prefix in ${_ip6prefixes}; do
+		_ip6addr=${_ip6prefix%%/*}
+		_prefixlen=${_ip6prefix##*/}
+		if [ "${_action}" = "-alias" ]; then
+			_prefixlen=""
+		else
+			_prefixlen="prefixlen $_prefixlen"
+		fi
+		eval "ifconfig ${_if} inet6 ${_action} ${_ip6addr} ${_prefixlen}"
+	done
+}
+
+
+
 # ifalias_up if af
 #	Configure aliases for network interface $if.
 #	It returns 0 if at least one alias was configured or


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212061111.qB6BBDeh052459>