From b2e5c5f82e2c0340649d514bfb3bb6382ae39041 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Fri, 29 Jun 2012 19:04:11 +0000
Subject: [PATCH] base-files: implement network_get_dnsserver() and
 network_get_dnssearch() in /lib/functions/network.sh

SVN-Revision: 32531
---
 .../base-files/files/lib/functions/network.sh | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/package/base-files/files/lib/functions/network.sh b/package/base-files/files/lib/functions/network.sh
index c6b98e6e1c..d2d4aae0d9 100644
--- a/package/base-files/files/lib/functions/network.sh
+++ b/package/base-files/files/lib/functions/network.sh
@@ -82,6 +82,37 @@ network_get_gateway()  { __network_gateway "$1" "$2" 4; }
 network_get_gateway6() { __network_gateway "$1" "$2" 6; }
 
 
+__network_dns() {
+	local __var="$1"
+	local __iface="$2"
+	local __field="$3"
+
+	local __tmp="$(ubus call network.interface."$__iface" status 2>/dev/null)"
+	local __dns=""
+	local __idx=1
+
+	json_load "${__tmp:-{}}"
+
+	if json_get_type __tmp "$__field" && [ "$__tmp" = array ]; then
+
+		json_select "$__field"
+
+		while json_get_type __tmp "$__idx" && [ "$__tmp" = string ]; do
+
+			json_get_var __tmp "$((__idx++))"
+			__dns="${__dns:+$__dns }$__tmp"
+
+		done
+	fi
+
+	eval "export -- \"$__var=$__dns\""
+	[ -n "$__dns" ]
+}
+
+network_get_dnsserver() { __network_dns "$1" "$2" dns_server; }
+network_get_dnssearch() { __network_dns "$1" "$2" dns_search; }
+
+
 __network_wan() {
 	local __var="$1"
 	local __family="$2"
-- 
GitLab