summaryrefslogtreecommitdiffstats
path: root/bin/tests/system/ifconfig.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/tests/system/ifconfig.sh')
-rwxr-xr-xbin/tests/system/ifconfig.sh263
1 files changed, 263 insertions, 0 deletions
diff --git a/bin/tests/system/ifconfig.sh b/bin/tests/system/ifconfig.sh
new file mode 100755
index 0000000..e8232f8
--- /dev/null
+++ b/bin/tests/system/ifconfig.sh
@@ -0,0 +1,263 @@
+#!/bin/sh
+#
+# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# See the COPYRIGHT file distributed with this work for additional
+# information regarding copyright ownership.
+
+#
+# Set up interface aliases for bind9 system tests.
+#
+# IPv4: 10.53.0.{1..10} RFC 1918
+# 10.53.1.{0..2}
+# 10.53.2.{0..2}
+# IPv6: fd92:7065:b8e:ffff::{1..10} ULA
+# fd92:7065:b8e:99ff::{1..2}
+# fd92:7065:b8e:ff::{1..2}
+#
+
+config_guess=""
+for f in ./config.guess ../../../config.guess
+do
+ if test -f $f
+ then
+ config_guess=$f
+ fi
+done
+
+if test "X$config_guess" = "X"
+then
+ cat <<EOF >&2
+$0: must be run from the top level source directory or the
+bin/tests/system directory
+EOF
+ exit 1
+fi
+
+sys=`sh $config_guess`
+
+use_ip=
+case "$sys" in
+ *-*-linux*)
+ if type ip > /dev/null; then
+ use_ip=yes
+ elif type ifconfig > /dev/null; then
+ :
+ else
+ echo "$0: can't find ip or ifconfig" >&2
+ exit 1
+ fi
+ ;;
+esac
+
+case "$1" in
+
+ start|up)
+ for i in 0 1 2
+ do
+ case $i in
+ 0) ipv6="ff" ;;
+ 1) ipv6="99" ;;
+ 2) ipv6="00" ;;
+ *) ipv6="" ;;
+ esac
+ for ns in 1 2 3 4 5 6 7 8 9 10
+ do
+ [ $i -gt 0 -a $ns -gt 2 ] && break
+ int=`expr $i \* 10 + $ns`
+ case "$sys" in
+ *-pc-solaris2.5.1)
+ ifconfig lo0:$int 10.53.$i.$ns \
+ netmask 0xffffffff up
+ ;;
+ *-sun-solaris2.[6-7])
+ ifconfig lo0:$int 10.53.$i.$ns \
+ netmask 0xffffffff up
+ ;;
+ *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
+ /sbin/ifconfig lo0:$int plumb
+ /sbin/ifconfig lo0:$int 10.53.$i.$ns up
+ /sbin/ifconfig lo0:$int inet6 plumb
+ [ "$ipv6" ] && /sbin/ifconfig lo0:$int \
+ inet6 fd92:7065:b8e:${ipv6}ff::$ns up
+ ;;
+ *-*-linux*)
+ if [ $use_ip ]; then
+ ip address add 10.53.$i.$ns/24 \
+ dev lo:$int
+ [ "$ipv6" ] && ip address add \
+ fd92:7065:b8e:${ipv6}ff::$ns/64 \
+ dev lo
+ else
+ ifconfig lo:$int 10.53.$i.$ns up \
+ netmask 255.255.255.0
+ [ "$ipv6" ] && ifconfig lo inet6 add \
+ fd92:7065:b8e:${ipv6}ff::$ns/64
+ fi
+ ;;
+ *-unknown-freebsd*)
+ ifconfig lo0 10.53.$i.$ns alias \
+ netmask 0xffffffff
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns alias
+ ;;
+ *-unknown-netbsd*)
+ ifconfig lo0 10.53.$i.$ns alias \
+ netmask 255.255.255.0
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns alias
+ ;;
+ *-unknown-openbsd*)
+ ifconfig lo0 10.53.$i.$ns alias \
+ netmask 255.255.255.0
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns alias
+ ;;
+ *-*-bsdi[3-5].*)
+ ifconfig lo0 add 10.53.$i.$ns \
+ netmask 255.255.255.0
+ ;;
+ *-dec-osf[4-5].*)
+ ifconfig lo0 alias 10.53.$i.$ns
+ ;;
+ *-sgi-irix6.*)
+ ifconfig lo0 alias 10.53.$i.$ns
+ ;;
+ *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
+ ifconfig lo0 10.53.$i.$ns alias \
+ netmask 0xffffffff
+ ;;
+ *-ibm-aix4.*|*-ibm-aix5.*)
+ ifconfig lo0 alias 10.53.$i.$ns
+ [ "$ipv6" ] && ifconfig lo0 inet6 alias -dad \
+ fd92:7065:b8e:${ipv6}ff::$ns/64
+ ;;
+ hpux)
+ ifconfig lo0:$int 10.53.$i.$ns \
+ netmask 255.255.255.0 up
+ [ "$ipv6" ] && ifconfig lo0:$int inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns up
+ ;;
+ *-sco3.2v*)
+ ifconfig lo0 alias 10.53.$i.$ns
+ ;;
+ *-darwin*)
+ ifconfig lo0 alias 10.53.$i.$ns
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns alias
+ ;;
+ *-cygwin*)
+ echo "Please run ifconfig.bat as Administrator."
+ exit 1
+ ;;
+ *)
+ echo "Don't know how to set up interface. Giving up."
+ exit 1
+ esac
+ done
+ done
+ ;;
+
+ stop|down)
+ for i in 0 1 2
+ do
+ case $i in
+ 0) ipv6="ff" ;;
+ 1) ipv6="99" ;;
+ 2) ipv6="00" ;;
+ *) ipv6="" ;;
+ esac
+ for ns in 10 9 8 7 6 5 4 3 2 1
+ do
+ [ $i -gt 0 -a $ns -gt 2 ] && continue
+ int=`expr $i \* 10 + $ns - 1`
+ case "$sys" in
+ *-pc-solaris2.5.1)
+ ifconfig lo0:$int 0.0.0.0 down
+ ;;
+ *-sun-solaris2.[6-7])
+ ifconfig lo0:$int 10.53.$i.$ns down
+ ;;
+ *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
+ ifconfig lo0:$int 10.53.$i.$ns down
+ ifconfig lo0:$int 10.53.$i.$ns unplumb
+ ifconfig lo0:$int inet6 down
+ ifconfig lo0:$int inet6 unplumb
+ ;;
+ *-*-linux*)
+ if [ $use_ip ]; then
+ ip address del 10.53.$i.$ns/24 \
+ dev lo:$int
+ [ "$ipv6" ] && ip address del \
+ fd92:7065:b8e:${ipv6}ff::$ns/64 \
+ dev lo
+ else
+ ifconfig lo:$int 10.53.$i.$ns down
+ [ "$ipv6" ] && ifconfig lo inet6 \
+ del fd92:7065:b8e:${ipv6}ff::$ns/64
+ fi
+ ;;
+ *-unknown-freebsd*)
+ ifconfig lo0 10.53.$i.$ns delete
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns delete
+ ;;
+ *-unknown-netbsd*)
+ ifconfig lo0 10.53.$i.$ns delete
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns delete
+ ;;
+ *-unknown-openbsd*)
+ ifconfig lo0 10.53.$i.$ns delete
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns delete
+ ;;
+ *-*-bsdi[3-5].*)
+ ifconfig lo0 remove 10.53.$i.$ns
+ ;;
+ *-dec-osf[4-5].*)
+ ifconfig lo0 -alias 10.53.$i.$ns
+ ;;
+ *-sgi-irix6.*)
+ ifconfig lo0 -alias 10.53.$i.$ns
+ ;;
+ *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
+ ifconfig lo0 -alias 10.53.$i.$ns
+ ;;
+ *-ibm-aix4.*|*-ibm-aix5.*)
+ ifconfig lo0 delete 10.53.$i.$ns
+ [ "$ipv6" ] && ifconfig lo0 delete inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns/64
+ ;;
+ hpux)
+ ifconfig lo0:$int 0.0.0.0
+ ifconfig lo0:$int inet6 ::
+ ;;
+ *-sco3.2v*)
+ ifconfig lo0 -alias 10.53.$i.$ns
+ ;;
+ *darwin*)
+ ifconfig lo0 -alias 10.53.$i.$ns
+ [ "$ipv6" ] && ifconfig lo0 inet6 \
+ fd92:7065:b8e:${ipv6}ff::$ns delete
+ ;;
+ *-cygwin*)
+ echo "Please run ifconfig.bat as Administrator."
+ exit 1
+ ;;
+ *)
+ echo "Don't know how to destroy interface. Giving up."
+ exit 1
+ esac
+ done
+ done
+ ;;
+
+ *)
+ echo "Usage: $0 { up | down }"
+ exit 1
+esac