diff options
author | Jo-Philipp Wich <jo@mein.io> | 2018-02-14 14:58:08 +0100 |
---|---|---|
committer | Hans Dedecker <dedeckeh@gmail.com> | 2018-03-13 18:27:41 +0100 |
commit | e83bc5e3c7531fe1a4ac090d49235274ba04b417 (patch) | |
tree | 937d329da95da02c303c2b5fd1919e5286ee7019 /package/network/ipv6/6in4/files | |
parent | 50433f313f763361e85761fae3de12097dedd20a (diff) | |
download | upstream-e83bc5e3c7531fe1a4ac090d49235274ba04b417.tar.gz upstream-e83bc5e3c7531fe1a4ac090d49235274ba04b417.tar.bz2 upstream-e83bc5e3c7531fe1a4ac090d49235274ba04b417.zip |
6in4: support multiple additional user prefixes
Support configuration in the form...
list ip6prefix 2001:db8:1234::/64
list ip6prefix 2001:db8:5678::/64
... to allow specifying multiple routed IPv6 prefixes.
Implements feature request FS#1361.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Acked-by: Hans Dedecker <dedeckeh@gmail.com>
Diffstat (limited to 'package/network/ipv6/6in4/files')
-rwxr-xr-x | package/network/ipv6/6in4/files/6in4.sh | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/package/network/ipv6/6in4/files/6in4.sh b/package/network/ipv6/6in4/files/6in4.sh index 786f37fc14..941dc43d68 100755 --- a/package/network/ipv6/6in4/files/6in4.sh +++ b/package/network/ipv6/6in4/files/6in4.sh @@ -22,13 +22,18 @@ proto_6in4_update() { ' "$1" "$@" } +proto_6in4_add_prefix() { + append "$3" "$1" +} + proto_6in4_setup() { local cfg="$1" local iface="$2" local link="6in4-$cfg" - local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunlink tunnelid username password updatekey - json_get_vars mtu ttl tos ipaddr peeraddr ip6addr ip6prefix tunlink tunnelid username password updatekey + local mtu ttl tos ipaddr peeraddr ip6addr ip6prefix ip6prefixes tunlink tunnelid username password updatekey + json_get_vars mtu ttl tos ipaddr peeraddr ip6addr tunlink tunnelid username password updatekey + json_for_each_item proto_6in4_add_prefix ip6prefix ip6prefixes [ -z "$peeraddr" ] && { proto_notify_error "$cfg" "MISSING_ADDRESS" @@ -61,10 +66,10 @@ proto_6in4_setup() { proto_add_ipv6_route "::" 0 "" "" "" "$local6/$mask6" } - [ -n "$ip6prefix" ] && { + for ip6prefix in $ip6prefixes; do proto_add_ipv6_prefix "$ip6prefix" proto_add_ipv6_route "::" 0 "" "" "" "$ip6prefix" - } + done proto_add_tunnel json_add_string mode sit @@ -122,7 +127,7 @@ proto_6in4_init_config() { proto_config_add_string "ipaddr" proto_config_add_string "ip6addr" - proto_config_add_string "ip6prefix" + proto_config_add_array "ip6prefix" proto_config_add_string "peeraddr" proto_config_add_string "tunlink" proto_config_add_string "tunnelid" |