diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 912449c85a..c669ff0ac6 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/version.mk PKG_NAME:=base-files -PKG_RELEASE:=172 +PKG_RELEASE:=173 PKG_FLAGS:=nonshared PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh index 1b0c717204..4b61fe33f2 100644 --- a/package/base-files/files/lib/functions/network.sh +++ b/package/base-files/files/lib/functions/network.sh @@ -29,18 +29,9 @@ network_get_ipaddr() { # 1: destination variable # 2: interface network_get_ipaddr6() { - 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 + __network_ifstatus "$1" "$2" "['ipv6-address'][0].address" || \ + __network_ifstatus "$1" "$2" "['ipv6-prefix-assignment'][0]['local-address'].address" || \ + return 1 } # determine first IPv4 subnet of given logical interface @@ -78,14 +69,19 @@ network_get_ipaddrs6() { local __addr local __list="" - if __network_ifstatus "__addr" "$2" "['ipv6-address','ipv6-prefix-assignment'][*].address"; then + if __network_ifstatus "__addr" "$2" "['ipv6-address'][*].address"; then for __addr in $__addr; do - case "$__addr" in - *:) __list="${__list:+$__list }${__addr}1" ;; - *) __list="${__list:+$__list }${__addr}" ;; - esac + __list="${__list:+$__list }${__addr}" + done + fi + + if __network_ifstatus "__addr" "$2" "['ipv6-prefix-assignment'][*]['local-address'].address"; then + for __addr in $__addr; do + __list="${__list:+$__list }${__addr}" done + fi + if [ -n "$__list" ]; then export "$1=$__list" return 0 fi