base-files: Add support for assigning multiple IPv6 addresses on an interface

SVN-Revision: 28222
owl
Vasilis Tsiligiannis 2011-09-12 21:07:00 +00:00
parent 1bdf65f580
commit 718c8ab940
1 changed files with 9 additions and 8 deletions

View File

@ -242,10 +242,10 @@ setup_interface_static() {
local iface="$1" local iface="$1"
local config="$2" local config="$2"
local ipaddr netmask ip6addr local ipaddr netmask ip6addrs ipaddr
config_get ipaddr "$config" ipaddr config_get ipaddr "$config" ipaddr
config_get netmask "$config" netmask config_get netmask "$config" netmask
config_get ip6addr "$config" ip6addr config_get ip6addrs "$config" ip6addr
[ -z "$ipaddr" -o -z "$netmask" ] && [ -z "$ip6addr" ] && return 1 [ -z "$ipaddr" -o -z "$netmask" ] && [ -z "$ip6addr" ] && return 1
local gateway ip6gw dns bcast metric local gateway ip6gw dns bcast metric
@ -255,13 +255,14 @@ setup_interface_static() {
config_get bcast "$config" broadcast config_get bcast "$config" broadcast
config_get metric "$config" metric config_get metric "$config" metric
[ -z "$ipaddr" ] || $DEBUG ifconfig "$iface" "$ipaddr" netmask "$netmask" broadcast "${bcast:-+}"
for ip6addr in $ip6addrs; do
case "$ip6addr" in case "$ip6addr" in
*/*) ;; */*) ;;
*:*) ip6addr="$ip6addr/64" ;; *:*) ip6addr="$ip6addr/64" ;;
esac esac
$DEBUG ifconfig "$iface" add "$ip6addr"
[ -z "$ipaddr" ] || $DEBUG ifconfig "$iface" "$ipaddr" netmask "$netmask" broadcast "${bcast:-+}" done
[ -z "$ip6addr" ] || $DEBUG ifconfig "$iface" add "$ip6addr"
[ -z "$gateway" ] || $DEBUG route add default gw "$gateway" ${metric:+metric $metric} dev "$iface" [ -z "$gateway" ] || $DEBUG route add default gw "$gateway" ${metric:+metric $metric} dev "$iface"
[ -z "$ip6gw" ] || $DEBUG route -A inet6 add default gw "$ip6gw" ${metric:+metric $metric} dev "$iface" [ -z "$ip6gw" ] || $DEBUG route -A inet6 add default gw "$ip6gw" ${metric:+metric $metric} dev "$iface"
[ -z "$dns" ] || add_dns "$config" $dns [ -z "$dns" ] || add_dns "$config" $dns