summaryrefslogtreecommitdiff
path: root/root
authorsandman <sandman>2002-12-15 22:04:09 (UTC)
committer sandman <sandman>2002-12-15 22:04:09 (UTC)
commita6a23d1c30e395add577eec261ae728f8d783299 (patch) (side-by-side diff)
treee216789ee24be045fb3f6ffb4dc55ca0b25c8195 /root
parent6de66e1e2af2b3b06e53dd83338b9dc9df6190df (diff)
downloadopie-a6a23d1c30e395add577eec261ae728f8d783299.zip
opie-a6a23d1c30e395add577eec261ae728f8d783299.tar.gz
opie-a6a23d1c30e395add577eec261ae728f8d783299.tar.bz2
moved changedns to /usr/bin (so ifup/down actually find it), and rewrote it
(runs with busybox now and doesn't write to temporary files in the current directory, which could be anywhere)
Diffstat (limited to 'root') (more/less context) (ignore whitespace changes)
-rwxr-xr-xroot/usr/bin/changedns42
1 files changed, 42 insertions, 0 deletions
diff --git a/root/usr/bin/changedns b/root/usr/bin/changedns
new file mode 100755
index 0000000..8270e86
--- a/dev/null
+++ b/root/usr/bin/changedns
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+arg0="`basename $0`" # base portion of our filename
+arg1="$1"
+tmpfile="/tmp/resolv.conf.$$"
+
+usage ( ) {
+ echo "usage: $arg0 -a|-r {ip} [{ip}...]"
+ rm -f $tmpfile
+ exit 1
+}
+
+
+[ "$#" -le 1 ] && usage
+
+shift
+
+cp /etc/resolv.conf $tmpfile
+
+case "$arg1" in
+ "-a")
+ for ip in "$@"; do
+ echo $ip
+ grep -sq "^nameserver $ip\$" $tmpfile || echo "nameserver $ip" >>$tmpfile
+ done
+ ;;
+ "-r")
+ for ip in "$@"; do
+ grep -v "^nameserver $ip\$" $tmpfile >$tmpfile.2
+ mv $tmpfile.2 $tmpfile
+ done
+ ;;
+ *)
+ usage
+ ;;
+esac
+
+[ -f $tmpfile ] && cp $tmpfile /etc/resolv.conf
+rm -f $tmpfile
+
+exit 0
+