diff options
author | Steven Barth <steven@midlink.org> | 2014-10-09 07:16:29 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2014-10-09 07:16:29 +0000 |
commit | c9ab6f3a677551b7945a56de31af9aff64fc632e (patch) | |
tree | 2e2e507632dda28d5e86d76d0ac8d0b0172f876e /package/base-files/files | |
parent | a1dde5fcb622d7081b7f48816ca62cb1260d1161 (diff) | |
download | upstream-c9ab6f3a677551b7945a56de31af9aff64fc632e.tar.gz upstream-c9ab6f3a677551b7945a56de31af9aff64fc632e.tar.bz2 upstream-c9ab6f3a677551b7945a56de31af9aff64fc632e.zip |
base-files: add network_get_ipaddrs_all()
Return all IPv4 and IPv6 addresses.
Signed-off-by: Mathias Kresin <openwrt@kresin.me>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42856 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/files')
-rw-r--r-- | package/base-files/files/lib/functions/network.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh index 3a6903f2de..1b0c717204 100644 --- a/package/base-files/files/lib/functions/network.sh +++ b/package/base-files/files/lib/functions/network.sh @@ -94,6 +94,29 @@ network_get_ipaddrs6() { return 1 } +# determine all IP addresses of given logical interface +# 1: destination variable +# 2: interface +network_get_ipaddrs_all() { + local __addr + local __list="" + + if __network_ifstatus "__addr" "$2" "['ipv4-address','ipv6-address','ipv6-prefix-assignment'][*].address"; then + for __addr in $__addr; do + case "$__addr" in + *:) __list="${__list:+$__list }${__addr}1" ;; + *) __list="${__list:+$__list }${__addr}" ;; + esac + done + + export "$1=$__list" + return 0 + fi + + unset "$1" + return 1 +} + # determine all IPv4 subnets of given logical interface # 1: destination variable # 2: interface |