base-files: /lib/functions/network.sh: fix network_get_ipaddr6
authorJo-Philipp Wich <jow@openwrt.org>
Mon, 11 Aug 2014 18:15:18 +0000 (18:15 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Mon, 11 Aug 2014 18:15:18 +0000 (18:15 +0000)
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>
SVN-Revision: 42139

package/base-files/Makefile
package/base-files/files/lib/functions/network.sh

index 10724b3eac00ffac450d951c27026562d01625aa..83385143cfca8b6f400b32f100e3afbbbc67e2e5 100644 (file)
@@ -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
index 86ab8905f1477f1e2ef5655dba75f5c345980a70..f4cf2b53447148f169179b6a1df3c9f971cddb67 100644 (file)
@@ -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