cvs updates from Wed Dec 15 17:45:22 EST 2010
[tridge/bind9.git] / bin / tests / system / ifconfig.sh
1 #!/bin/sh
2 #
3 # Copyright (C) 2004, 2007-2010  Internet Systems Consortium, Inc. ("ISC")
4 # Copyright (C) 2000-2003  Internet Software Consortium.
5 #
6 # Permission to use, copy, modify, and/or distribute this software for any
7 # purpose with or without fee is hereby granted, provided that the above
8 # copyright notice and this permission notice appear in all copies.
9 #
10 # THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
11 # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
12 # AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
13 # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
14 # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 # PERFORMANCE OF THIS SOFTWARE.
17
18 # $Id: ifconfig.sh,v 1.59 2010/06/11 23:46:49 tbox Exp $
19
20 #
21 # Set up interface aliases for bind9 system tests.
22 #
23 # IPv4: 10.53.0.{1..7}                          RFC 1918
24 # IPv6: fd92:7065:b8e:ffff::{1..7}              ULA
25 #
26
27 config_guess=""
28 for f in ./config.guess ../../../config.guess
29 do
30         if test -f $f
31         then
32                 config_guess=$f
33         fi
34 done
35
36 if test "X$config_guess" = "X"
37 then
38         cat <<EOF >&2
39 $0: must be run from the top level source directory or the
40 bin/tests/system directory
41 EOF
42         exit 1
43 fi
44
45 # If running on hp-ux, don't even try to run config.guess.
46 # It will try to create a temporary file in the current directory,
47 # which fails when running as root with the current directory
48 # on a NFS mounted disk.
49
50 case `uname -a` in
51   *HP-UX*) sys=hpux ;;
52   *) sys=`sh $config_guess` ;;
53 esac
54
55 case "$2" in
56 [0-9]|[1-9][0-9]|[1-9][0-9][0-9]) base=$2;;
57 *) base=""
58 esac
59
60 case "$3" in
61 [0-9]|[1-9][0-9]|[1-9][0-9][0-9]) base6=$2;;
62 *) base6=""
63 esac
64
65 case "$1" in
66
67     start|up)
68         for ns in 1 2 3 4 5 6 7
69         do
70                 if test -n "$base"
71                 then
72                         int=`expr $ns + $base - 1`
73                 else
74                         int=$ns
75                 fi
76                 if test -n "$base6"
77                 then
78                         int6=`expr $ns + $base6 - 1`
79                 else
80                         int6=$ns
81                 fi
82                 case "$sys" in
83                     *-pc-solaris2.5.1)
84                         ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up
85                         ;;
86                     *-sun-solaris2.[6-7])
87                         ifconfig lo0:$int 10.53.0.$ns netmask 0xffffffff up
88                         ;;
89                     *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
90                         /sbin/ifconfig lo0:$int plumb
91                         /sbin/ifconfig lo0:$int 10.53.0.$ns up
92                         if test -n "$int6"
93                         then
94                                 /sbin/ifconfig lo0:$int6 inet6 plumb
95                                 /sbin/ifconfig lo0:$int6 \
96                                         inet6 fd92:7065:b8e:ffff::$ns up
97                         fi
98                         ;;
99                     *-*-linux*)
100                         ifconfig lo:$int 10.53.0.$ns up netmask 255.255.255.0
101                         ifconfig lo inet6 add fd92:7065:b8e:ffff::$ns/64
102                         ;;
103                     *-unknown-freebsd*)
104                         ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff
105                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
106                         ;;
107                     *-unknown-netbsd*)
108                         ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
109                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
110                         ;;
111                     *-unknown-openbsd*)
112                         ifconfig lo0 10.53.0.$ns alias netmask 255.255.255.0
113                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
114                         ;;
115                     *-*-bsdi[3-5].*)
116                         ifconfig lo0 add 10.53.0.$ns netmask 255.255.255.0
117                         ;;
118                     *-dec-osf[4-5].*)
119                         ifconfig lo0 alias 10.53.0.$ns
120                         ;;
121                     *-sgi-irix6.*)
122                         ifconfig lo0 alias 10.53.0.$ns
123                         ;;
124                     *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
125                         ifconfig lo0 10.53.0.$ns alias netmask 0xffffffff
126                         ;;
127                     *-ibm-aix4.*|*-ibm-aix5.*)
128                         ifconfig lo0 alias 10.53.0.$ns
129                         ifconfig lo0 inet6 alias -dad fd92:7065:b8e:ffff::$ns/64
130                         ;;
131                     hpux)
132                         ifconfig lo0:$int 10.53.0.$ns netmask 255.255.255.0 up
133                         ifconfig lo0:$int inet6 fd92:7065:b8e:ffff::$ns up
134                         ;;
135                     *-sco3.2v*)
136                         ifconfig lo0 alias 10.53.0.$ns
137                         ;;
138                     *-darwin*)
139                         ifconfig lo0 alias 10.53.0.$ns
140                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns alias
141                         ;;
142                     *)
143                         echo "Don't know how to set up interface.  Giving up."
144                         exit 1
145                 esac
146         done
147         ;;
148
149     stop|down)
150         for ns in 7 6 5 4 3 2 1
151         do
152                 if test -n "$base"
153                 then
154                         int=`expr $ns + $base - 1`
155                 else
156                         int=$ns 
157                 fi
158                 case "$sys" in
159                     *-pc-solaris2.5.1)
160                         ifconfig lo0:$int 0.0.0.0 down
161                         ;;
162                     *-sun-solaris2.[6-7])
163                         ifconfig lo0:$int 10.53.0.$ns down
164                         ;;
165                     *-*-solaris2.[8-9]|*-*-solaris2.1[0-9])
166                         ifconfig lo0:$int 10.53.0.$ns down
167                         ifconfig lo0:$int 10.53.0.$ns unplumb
168                         if test -n "$int6"
169                         then
170                                 ifconfig lo0:$int6 inet6 down
171                                 ifconfig lo0:$int6 inet6 unplumb
172                         fi
173                         ;;
174                     *-*-linux*)
175                         ifconfig lo:$int 10.53.0.$ns down
176                         ifconfig lo inet6 del fd92:7065:b8e:ffff::$ns/64
177                         ;;
178                     *-unknown-freebsd*)
179                         ifconfig lo0 10.53.0.$ns delete
180                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
181                         ;;
182                     *-unknown-netbsd*)
183                         ifconfig lo0 10.53.0.$ns delete
184                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
185                         ;;
186                     *-unknown-openbsd*)
187                         ifconfig lo0 10.53.0.$ns delete
188                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
189                         ;;
190                     *-*-bsdi[3-5].*)
191                         ifconfig lo0 remove 10.53.0.$ns
192                         ;;
193                     *-dec-osf[4-5].*)
194                         ifconfig lo0 -alias 10.53.0.$ns
195                         ;;
196                     *-sgi-irix6.*)
197                         ifconfig lo0 -alias 10.53.0.$ns
198                         ;;
199                     *-*-sysv5uw7*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
200                         ifconfig lo0 -alias 10.53.0.$ns
201                         ;;
202                     *-ibm-aix4.*|*-ibm-aix5.*)
203                         ifconfig lo0 delete 10.53.0.$ns
204                         ifconfig lo0 delete inet6 fd92:7065:b8e:ffff::$ns/64
205                         ;;
206                     hpux)
207                         ifconfig lo0:$int 0.0.0.0
208                         ifconfig lo0:$int inet6 ::
209                         ;;
210                     *-sco3.2v*)
211                         ifconfig lo0 -alias 10.53.0.$ns
212                         ;;
213                     *darwin*)
214                         ifconfig lo0 -alias 10.53.0.$ns
215                         ifconfig lo0 inet6 fd92:7065:b8e:ffff::$ns delete
216                         ;;
217                     *)
218                         echo "Don't know how to destroy interface.  Giving up."
219                         exit 1
220                 esac
221         done
222
223         ;;
224
225         *)
226                 echo "Usage: $0 { up | down } [base]"
227                 exit 1
228 esac