]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
use "ip" on linux, falling back to "ifconfig" when it isn't available
authorEvan Hunt <each@isc.org>
Thu, 31 May 2018 03:07:53 +0000 (20:07 -0700)
committerEvan Hunt <each@isc.org>
Wed, 6 Jun 2018 04:51:05 +0000 (21:51 -0700)
(cherry picked from commit d7c54007985609133a8fd22b451a0c43b00defcf)
(cherry picked from commit 3e1a0c2b62b80d30a01eb4054fc1e1594f91355e)

bin/tests/system/ifconfig.sh

index 8e9fc38a78dc20b90e1c00a410b7b1b67144e76f..02ddfa00dc87488a2e945fb89295d94efac3b612 100755 (executable)
@@ -53,6 +53,20 @@ case `uname -a` in
        *) sys=`sh $config_guess` ;;
 esac
 
+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)
@@ -85,10 +99,18 @@ case "$1" in
                                        inet6 fd92:7065:b8e:${ipv6}ff::$ns up
                                ;;
                            *-*-linux*)
-                               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
+                                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 \
@@ -180,9 +202,17 @@ case "$1" in
                                ifconfig lo0:$int inet6 unplumb
                                ;;
                            *-*-linux*)
-                               ifconfig lo:$int 10.53.$i.$ns down
-                               [ "$ipv6" ] && ifconfig lo inet6 \
-                                       del fd92:7065:b8e:${ipv6}ff::$ns/64
+                                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