5 PATH=/sbin:/usr/sbin:/bin:/usr/bin
7 . /etc/sysconfig/network
8 . /etc/rc.d/init.d/functions
9 . /lib/rc-scripts/functions.network
11 # Will be removed in the future
12 if is_yes "$NETWORKING" ; then
13 if [ -z "$IPV4_NETWORKING" ] ; then
14 echo "NETWORKING is set to YES, but IPV4_NETWORKING is empty!"
15 echo "Please upgrade your config"
16 echo "Assuming you want IPv4 networking"
24 nls "Usage: %s <device name>" "ifdown" >&2
28 if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then
29 CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
34 if [ "$(id -u)" != "0" ]; then
35 if [ -x /sbin/usernetctl ]; then
36 exec /sbin/usernetctl $CONFIG down
38 echo "Users cannot control this device." >&2
44 # set all major variables
47 OTHERSCRIPT="/lib/rc-scripts/ifdown-${DEVICETYPE}"
49 # shutdown tleds software
50 if [ "$TLEDS_DEV" = "$DEVICE" -a -x /usr/bin/tleds ]; then
51 /usr/bin/tleds -qk "$DEVICE"
54 if [ -x $OTHERSCRIPT ]; then
55 if [ "$HANDLING" = "0" ]; then
56 exec $OTHERSCRIPT $CONFIG $2
57 elif [ "$HANDLING" = "1" ]; then
58 $OTHERSCRIPT $CONFIG $2
62 if is_yes "$ENABLE_6TO4"; then
63 tun6to4=tun6to4_$DEVICE
64 /sbin/ip -6 route flush dev $tun6to4 2>/dev/null
65 if [ $? = 0 ]; then # the tunnel has been set up in ifup
66 /sbin/ip link set dev $tun6to4 down
67 /sbin/ip tunnel del $tun6to4
71 if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ]; then
72 if is_yes "$IPV4_NETWORKING"; then
75 case ${DHCP_CLIENT##*/} in
77 $DHCP_CLIENT -r -i ${DEVICE}
81 $DHCP_CLIENT -k ${DEVICE}
86 $DHCP_CLIENT -k ${DEVICE}
90 if [ -f "/var/run/dhclient.$DEVICE.pid" ] ; then
91 $DHCP_CLIENT -r -pf /var/run/dhclient.$DEVICE.pid -lf /var/lib/dhclient/dhclient.$DEVICE.leases 2>/dev/null
93 elif [ -f /var/run/dhclient.pid ]; then
94 # may be left by older rc-scripts
95 PID=$(cat /var/run/dhclient.pid)
96 if kill -0 $PID 2>/dev/null; then
103 $DHCP_CLIENT -k ${DEVICE}
110 if is_yes "${WLAN_WPA}"; then
111 killproc --pidfile "wpa_supplicant-${DEVICE}.pid" wpa_supplicant > /dev/null 2>&1
112 rm -f "/var/run/wpa_supplicant-${DEVICE}.pid"
115 # Check to make sure the device is actually up
116 check_device_down && exit 0
118 if [ -n "${SUBDEVICE}" ]; then
119 ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE}
121 LC_ALL=C ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
123 if [ ${DEVICETYPE} = "bond" ]; then
124 if [ ! -x /sbin/ifenslave ]; then
125 nls "%s is missing. Can't continue." "/sbin/ifenslave"
129 # get up the bonding device before enslaving
130 if ! check_device_down "${DEVICE}"; then
131 ip link set ${DEVICE} up
134 for BSVAR in $(awk '/Slave Interface:/{ print $3}' /proc/net/bonding/${DEVICE}); do
135 if [ "${BSVAR}" ]; then
136 ifenslave -d ${DEVICE} $BSVAR
141 ip link set ${DEVICE} down
144 if [ "$HANDLING" = "4" ]; then
148 if [ -n "$RESULT" ] ; then
149 if [ "$RESULT" -ne "0" ]; then
154 exec /lib/rc-scripts/ifdown-post $CONFIG