From a62f6c751b0905b69acbdf0b80a4b9cd12b89170 Mon Sep 17 00:00:00 2001
From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 11 Aug 2014 18:17:09 +0000
Subject: [PATCH] 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 <henning@hennsch.de>

Backport of r42139

git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42140 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/base-files/Makefile                       |  2 +-
 package/base-files/files/lib/functions/network.sh | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 76a4dabe..033eef01 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/version.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=155
+PKG_RELEASE:=156
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=opkg/host
diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh
index 86ab8905..f4cf2b53 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
-- 
GitLab