[package] base-files: add add_dns() and remove_dns() helpers to network config, usefu...
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 7 May 2010 01:17:47 +0000 (01:17 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 7 May 2010 01:17:47 +0000 (01:17 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21391 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/lib/network/config.sh

index 4336244..1a77145 100755 (executable)
@@ -66,6 +66,35 @@ add_vlan() {
        return 1
 }
 
+# add dns entries if they are not in resolv.conf yet
+add_dns() {
+       local cfg="$1"; shift
+
+       local dns
+       local add
+       for dns in "$@"; do
+               grep -qsF "nameserver $dns" /tmp/resolv.conf.auto || {
+                       add="${add:+$add }$dns"
+                       echo "nameserver $dns" >> /tmp/resolv.conf.auto
+               }
+       done
+
+       uci_set_state network "$cfg" dns "$add"
+}
+
+# remove dns entries of the given iface
+remove_dns() {
+       local cfg="$1"
+
+       local dns
+       config_get dns "$cfg" dns
+       for dns in $dns; do
+               sed -i -e "/^nameserver $dns$/d" /tmp/resolv.conf.auto
+       done
+
+       uci_revert_state network "$cfg" dns
+}
+
 # sort the device list, drop duplicates
 sort_list() {
        local arg="$*"
This page took 0.029046 seconds and 4 git commands to generate.