ifconfig.sh.in 6.7 KB
Newer Older
Andreas Gustafsson's avatar
Andreas Gustafsson committed
1
#!/bin/sh
Michael Sawyer's avatar
Michael Sawyer committed
2
#
3
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
Mark Andrews's avatar
Mark Andrews committed
4
#
5 6 7
# 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/.
8 9 10
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
Michael Sawyer's avatar
Michael Sawyer committed
11

Andreas Gustafsson's avatar
Andreas Gustafsson committed
12 13 14
#
# Set up interface aliases for bind9 system tests.
#
Mark Andrews's avatar
Mark Andrews committed
15
# IPv4: 10.53.0.{1..10}				RFC 1918
16 17
#       10.53.1.{1..2}
#       10.53.2.{1..2}
Mark Andrews's avatar
Mark Andrews committed
18
# IPv6: fd92:7065:b8e:ffff::{1..10}		ULA
19 20
#       fd92:7065:b8e:99ff::{1..2}
#       fd92:7065:b8e:ff::{1..2}
21
#
Andreas Gustafsson's avatar
Andreas Gustafsson committed
22

23
top_srcdir=@abs_top_srcdir@
24

25
sys=$($SHELL "$top_srcdir/config.guess")
26

27 28 29 30 31 32 33 34 35 36 37 38 39 40
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

41 42
case "$1" in

43
    start|up)
44
	for i in 0 1 2
45
	do
46 47 48 49 50
		case $i in
		  0) ipv6="ff" ;;
		  1) ipv6="99" ;;
		  2) ipv6="00" ;;
		  *) ipv6="" ;;
51
		esac
Mark Andrews's avatar
Mark Andrews committed
52
		for ns in 1 2 3 4 5 6 7 8 9 10
53 54
		do
			[ $i -gt 0 -a $ns -gt 2 ] && break
55
			int=`expr $i \* 10 + $ns`
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
			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*)
73 74 75 76 77 78 79 80 81 82 83 84
                                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
85 86 87 88 89 90 91
				;;
			    *-unknown-freebsd*)
				ifconfig lo0 10.53.$i.$ns alias \
					netmask 0xffffffff
				[ "$ipv6" ] && ifconfig lo0 inet6 \
					fd92:7065:b8e:${ipv6}ff::$ns alias
				;;
92
			    *-unknown-dragonfly*|*-unknown-netbsd*|*-unknown-openbsd*)
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
				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
140
	done
141
	;;
142

143
    stop|down)
144
	for i in 0 1 2
145
	do
146 147 148 149 150
		case $i in
		  0) ipv6="ff" ;;
		  1) ipv6="99" ;;
		  2) ipv6="00" ;;
		  *) ipv6="" ;;
151
		esac
Mark Andrews's avatar
Mark Andrews committed
152
		for ns in 10 9 8 7 6 5 4 3 2 1
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
		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*)
170 171 172 173 174 175 176 177 178 179 180
                                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
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
				;;
			    *-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*)
227 228 229
				echo "Please run ifconfig.bat as Administrator."
				exit 1
				;;
230 231 232 233 234
			    *)
				echo "Don't know how to destroy interface.  Giving up."
				exit 1
			esac
		done
235
	done
236
	;;
237 238

	*)
239
		echo "Usage: $0 { up | down }"
240
		exit 1
241
esac