123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- #!/bin/sh
- #
- # Copyright (C) 2004, 2007-2010 Internet Systems Consortium, Inc. ("ISC")
- # Copyright (C) 2000-2003 Internet Software Consortium.
- #
- # Permission to use, copy, modify, and/or distribute this software for any
- # purpose with or without fee is hereby granted, provided that the above
- # copyright notice and this permission notice appear in all copies.
- #
- # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- # AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- # PERFORMANCE OF THIS SOFTWARE.
- #
- # Set up interface aliases for bind9 system tests.
- #
- # IPv4: 10.53.0.{1..7} RFC 1918
- # IPv6: fd92:7065:b8e:ffff::{1..7} ULA
- #
- 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
- # If running on hp-ux, don't even try to run config.guess.
- # It will try to create a temporary file in the current directory,
- # which fails when running as root with the current directory
- # on a NFS mounted disk.
- case `uname -a` in
- *HP-UX*) sys=hpux ;;
- *) sys=`sh $config_guess` ;;
- esac
- case "$2" in
- [0-9]|[1-9][0-9]|[1-9][0-9][0-9]) base=$2;;
- *) base=""
- esac
- case "$3" in
- [0-9]|[1-9][0-9]|[1-9][0-9][0-9]) base6=$2;;
- *) base6=""
- esac
- case "$1" in
- start|up)
- for ns in 1 2 3 4 5 6 7
- do
- if test -n "$base"
- then
- int=`expr $ns + $base - 1`
- else
- int=$ns
- fi
- if test -n "$base6"
- then
- int6=`expr $ns + $base6 - 1`
- else
- int6=$ns
- fi
- case "$sys" in
- *-pc-solaris2.5.1)
- ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up
- ;;
- *-sun-solaris2.[6-7])
- ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up
- ;;
- *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
- /sbin/ifconfig lo0:$int plumb
- /sbin/ifconfig lo0:$int 10.53.0.$ns up
- if test -n "$int6"
- then
- /sbin/ifconfig lo0:$int6 inet6 plumb
- /sbin/ifconfig lo0:$int6 \
- inet6 fd92:7065:b8e:ffff::$ns up
- fi
- ;;
- *-*-linux*)
- ifconfig lo:$int 10.53.0.$ns up netmask 255.255.255.0
- ifconfig lo inet6 add fd92:7065:b8e:ffff::$ns/64
- ;;
- *-unknown-freebsd*)
- ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
- ;;
- *-unknown-netbsd*)
- ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
- ;;
- *-unknown-openbsd*)
- ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
- ;;
- *-*-bsdi[3-5].*)
- ifconfig lo0 add 10.53.0.$ns netmask 255.255.255.0
- ;;
- *-dec-osf[4-5].*)
- ifconfig lo0 alias 10.53.0.$ns
- ;;
- *-sgi-irix6.*)
- ifconfig lo0 alias 10.53.0.$ns
- ;;
- *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
- ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff
- ;;
- *-ibm-aix4.*|*-ibm-aix5.*)
- ifconfig lo0 alias 10.53.0.$ns
- ifconfig lo0 inet6 alias -dad fd92:7065:b8e:ffff::$ns/64
- ;;
- hpux)
- ifconfig lo0:$int 10.53.0.$ns netmask 255.255.255.0 up
- ifconfig lo0:$int inet6 fd92:7065:b8e:ffff::$ns up
- ;;
- *-sco3.2v*)
- ifconfig lo0 alias 10.53.0.$ns
- ;;
- *-darwin*)
- ifconfig lo0 alias 10.53.0.$ns
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
- ;;
- *)
- echo "Don't know how to set up interface. Giving up."
- exit 1
- esac
- done
- ;;
- stop|down)
- for ns in 7 6 5 4 3 2 1
- do
- if test -n "$base"
- then
- int=`expr $ns + $base - 1`
- else
- int=$ns
- fi
- case "$sys" in
- *-pc-solaris2.5.1)
- ifconfig lo0:$int 0.0.0.0 down
- ;;
- *-sun-solaris2.[6-7])
- ifconfig lo0:$int 10.53.0.$ns down
- ;;
- *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
- ifconfig lo0:$int 10.53.0.$ns down
- ifconfig lo0:$int 10.53.0.$ns unplumb
- if test -n "$int6"
- then
- ifconfig lo0:$int6 inet6 down
- ifconfig lo0:$int6 inet6 unplumb
- fi
- ;;
- *-*-linux*)
- ifconfig lo:$int 10.53.0.$ns down
- ifconfig lo inet6 del fd92:7065:b8e:ffff::$ns/64
- ;;
- *-unknown-freebsd*)
- ifconfig lo0 10.53.0.$ns delete
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
- ;;
- *-unknown-netbsd*)
- ifconfig lo0 10.53.0.$ns delete
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
- ;;
- *-unknown-openbsd*)
- ifconfig lo0 10.53.0.$ns delete
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
- ;;
- *-*-bsdi[3-5].*)
- ifconfig lo0 remove 10.53.0.$ns
- ;;
- *-dec-osf[4-5].*)
- ifconfig lo0 -alias 10.53.0.$ns
- ;;
- *-sgi-irix6.*)
- ifconfig lo0 -alias 10.53.0.$ns
- ;;
- *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
- ifconfig lo0 -alias 10.53.0.$ns
- ;;
- *-ibm-aix4.*|*-ibm-aix5.*)
- ifconfig lo0 delete 10.53.0.$ns
- ifconfig lo0 delete inet6 fd92:7065:b8e:ffff::$ns/64
- ;;
- hpux)
- ifconfig lo0:$int 0.0.0.0
- ifconfig lo0:$int inet6 ::
- ;;
- *-sco3.2v*)
- ifconfig lo0 -alias 10.53.0.$ns
- ;;
- *darwin*)
- ifconfig lo0 -alias 10.53.0.$ns
- ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
- ;;
- *)
- echo "Don't know how to destroy interface. Giving up."
- exit 1
- esac
- done
- ;;
- *)
- echo "Usage: $0 { up | down } [base]"
- exit 1
- esac
|