aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/network
diff options
context:
space:
mode:
authorVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>2011-09-12 21:07:00 +0000
committerVasilis Tsiligiannis <b_tsiligiannis@silverton.gr>2011-09-12 21:07:00 +0000
commitdb074ccb3accf4dbbb8748fe63fc3f4790b9c9ee (patch)
tree983a210f0079cb197dd8b07afc80c1b6a41f3aed /package/base-files/files/lib/network
parent8d0d9487dc813eaf9745c84085c1b39f06db58ba (diff)
downloadmaster-187ad058-db074ccb3accf4dbbb8748fe63fc3f4790b9c9ee.tar.gz
master-187ad058-db074ccb3accf4dbbb8748fe63fc3f4790b9c9ee.tar.bz2
master-187ad058-db074ccb3accf4dbbb8748fe63fc3f4790b9c9ee.zip
[package] base-files: Add support for assigning multiple IPv6 addresses on an interface
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28222 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/files/lib/network')
-rwxr-xr-xpackage/base-files/files/lib/network/config.sh17
1 files changed, 9 insertions, 8 deletions
diff --git a/package/base-files/files/lib/network/config.sh b/package/base-files/files/lib/network/config.sh
index cf5b197b59..5975f17dfc 100755
--- a/package/base-files/files/lib/network/config.sh
+++ b/package/base-files/files/lib/network/config.sh
@@ -242,10 +242,10 @@ setup_interface_static() {
local iface="$1"
local config="$2"
- local ipaddr netmask ip6addr
+ local ipaddr netmask ip6addrs ipaddr
config_get ipaddr "$config" ipaddr
config_get netmask "$config" netmask
- config_get ip6addr "$config" ip6addr
+ config_get ip6addrs "$config" ip6addr
[ -z "$ipaddr" -o -z "$netmask" ] && [ -z "$ip6addr" ] && return 1
local gateway ip6gw dns bcast metric
@@ -255,13 +255,14 @@ setup_interface_static() {
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 "$ip6addr" ] || $DEBUG ifconfig "$iface" add "$ip6addr"
+ for ip6addr in $ip6addrs; do
+ case "$ip6addr" in
+ */*) ;;
+ *:*) ip6addr="$ip6addr/64" ;;
+ esac
+ $DEBUG ifconfig "$iface" add "$ip6addr"
+ done
[ -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