3 # $Id: ifdown,v 1.26 2000/11/16 15:58:55 baggins Exp $
5 PATH=/sbin:/usr/sbin:/bin:/usr/bin
10 echo "usage: ifdown <device name>" >&2
14 . /etc/sysconfig/network
15 . /etc/rc.d/init.d/functions
16 . /etc/sysconfig/network-scripts/.functions
18 if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then
19 CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
24 if [ `id -u` != 0 ]; then
25 if [ -x /sbin/usernetctl ]; then
26 exec /sbin/usernetctl $CONFIG down
28 echo "Users cannot control this device." >&2
34 if [ "$BOOTPROTO" = bootp ]; then
38 if [ "$BOOTPROTO" = "dhcp" ]; then
42 # IPv4, IPv6 or both ?
43 [ -n "$IPV6_ADDR" ] && IPv6=yes || IPv6=no
44 [ -n "$IPADDR" -o -n "$DYNIP" ] && IPv4=yes || IPv4=no
46 if [ -z "$PREFIX" -a -n "$NETMASK" ]; then
47 PREFIX="`calcprefix $NETMASK`"
50 if [ -z "$NETMASK" -a -n "$PREFIX" ]; then
51 NETMASK="`calcnetmask $PREFIX`"
55 # detect network device type (ie. dummy, eth for dummy0, eth0 ..)
56 DEVICETYPE=$(echo $DEVICE | awk ' { gsub(/[0-9]*$/,NUL); print $0 } ')
57 # real name of device (ie. is eth0 for eth0,eth0:1,eth0:alias)
58 DEVICE=$(echo $DEVICE | awk ' { gsub(/:.*$/,NUL); print $0 } ')
59 OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}"
61 if [ -x $OTHERSCRIPT ]; then
62 if [ "$DEFAULTHANDLING" = "yes" ]; then
63 $OTHERSCRIPT $CONFIG $2
65 $OTHERSCRIPT $CONFIG $2
70 if echo "$FULLDEVNAME" | grep -q ':' ; then
76 if [ "$ISALIAS" = "yes" ]; then
77 if [ "$IPv4" = "yes" ]; then
78 ip -family inet addr del ${IPADDR}/${PREFIX} dev ${DEVICE} label ${FULLDEVNAME}
80 for ADDR in ${IPV6_ADDR} ; do
81 ip -family inet6 addr del ${ADDR} dev ${DEVICE} label ${FULLDEVNAME}
84 if [ "$DYNIP" = "dhcpcd" ]; then
85 /sbin/dhcpcd -k $FULLDEVNAME
87 ip link set ${DEVICE} down
88 ip addr flush dev ${DEVICE} 2> /dev/null
91 exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG