From 58ed63723a6b94fae905dcddb501adb1191c712a Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 11 Aug 2014 18:17:09 +0000 Subject: BB: base-files: /lib/functions/network.sh: fix network_get_ipaddr6 When looking for the first ipaddr also consider the current prefix just like network_get_ipaddrs6 does. If ipv6-address was empty the function did not return the first ipaddr even if the list was non-empty. fixes commit 83e9122f88a002871d5cdf421cf6aa6052b7e006 Signed-off-by: Henning Schild Backport of r42139 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42140 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/base-files/files/lib/functions/network.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'package/base-files/files/lib') diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh index 86ab8905f1..f4cf2b5344 100644 --- a/package/base-files/files/lib/functions/network.sh +++ b/package/base-files/files/lib/functions/network.sh @@ -29,7 +29,18 @@ network_get_ipaddr() { # 1: destination variable # 2: interface network_get_ipaddr6() { - __network_ifstatus "$1" "$2" "['ipv6-address'][0].address"; + local __addr + + if __network_ifstatus "__addr" "$2" "['ipv6-address','ipv6-prefix-assignment'][0].address"; then + case "$__addr" in + *:) export "$1=${__addr}1" ;; + *) export "$1=${__addr}" ;; + esac + return 0 + fi + + unset $1 + return 1 } # determine first IPv4 subnet of given logical interface -- cgit v1.2.3