[package] base-files: add add_dns() and remove_dns() helpers to network config, useful to merge dns entries from multiple interfaces

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21391 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Jo-Philipp Wich 2010-05-07 01:17:47 +00:00
parent 52daa0e967
commit 58cc0f2ace
1 changed files with 29 additions and 0 deletions

View File

@ -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="$*"