Multiple IPv6 addresses should be handled with alias sections
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28240
3c298f89-4303-0410-b956-
a3cf2f4a3e73
local iface="$1"
local config="$2"
local iface="$1"
local config="$2"
- local ipaddr netmask ip6addrs ipaddr
+ local ipaddr netmask ip6addr
config_get ipaddr "$config" ipaddr
config_get netmask "$config" netmask
config_get ipaddr "$config" ipaddr
config_get netmask "$config" netmask
- config_get ip6addrs "$config" ip6addr
+ config_get ip6addr "$config" ip6addr
[ -z "$ipaddr" -o -z "$netmask" ] && [ -z "$ip6addr" ] && return 1
local gateway ip6gw dns bcast metric
[ -z "$ipaddr" -o -z "$netmask" ] && [ -z "$ip6addr" ] && return 1
local gateway ip6gw dns bcast metric
config_get bcast "$config" broadcast
config_get metric "$config" metric
config_get bcast "$config" broadcast
config_get metric "$config" metric
+ case "$ip6addr" in
+ */*) ;;
+ *:*) ip6addr="$ip6addr/64" ;;
+ esac
+
[ -z "$ipaddr" ] || $DEBUG ifconfig "$iface" "$ipaddr" netmask "$netmask" broadcast "${bcast:-+}"
[ -z "$ipaddr" ] || $DEBUG ifconfig "$iface" "$ipaddr" netmask "$netmask" broadcast "${bcast:-+}"
- for ip6addr in $ip6addrs; do
- case "$ip6addr" in
- */*) ;;
- *:*) ip6addr="$ip6addr/64" ;;
- esac
- $DEBUG ifconfig "$iface" add "$ip6addr"
- done
+ [ -z "$ip6addr" ] || $DEBUG ifconfig "$iface" add "$ip6addr"
[ -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 "$dns" ] || add_dns "$config" $dns
[ -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 "$dns" ] || add_dns "$config" $dns