]>
Commit | Line | Data |
---|---|---|
12de71be | 1 | #!/bin/sh |
b0443108 | 2 | # |
ec8b15cb | 3 | # $Id$ |
b0443108 | 4 | # |
7742e157 AF |
5 | PATH=/sbin:/usr/sbin:/bin:/usr/bin |
6 | ||
fa8aca70 JR |
7 | . /etc/sysconfig/network |
8 | . /etc/rc.d/init.d/functions | |
baa6b418 | 9 | . /etc/sysconfig/network-scripts/functions.network |
fa8aca70 JR |
10 | |
11 | # Will be removed in the future | |
12 | if is_yes "$NETWORKING" ; then | |
5e6dfc29 JR |
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" | |
17 | IPV4_NETWORKING=yes | |
18 | fi | |
fa8aca70 JR |
19 | fi |
20 | ||
111f7a0d | 21 | DEV=$1 |
7742e157 | 22 | |
111f7a0d | 23 | [ -z "$DEV" ] && { |
5e6dfc29 JR |
24 | nls "Usage: %s <device name>" "ifdown" >&2 |
25 | exit 1 | |
7742e157 AF |
26 | } |
27 | ||
03f9cfee | 28 | if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then |
5e6dfc29 | 29 | CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV" |
03f9cfee | 30 | else |
5e6dfc29 | 31 | CONFIG="$DEV" |
111f7a0d AF |
32 | fi |
33 | ||
fa8aca70 | 34 | if [ "$(id -u)" != "0" ]; then |
5e6dfc29 JR |
35 | if [ -x /sbin/usernetctl ]; then |
36 | exec /sbin/usernetctl $CONFIG down | |
37 | fi | |
38 | echo "Users cannot control this device." >&2 | |
39 | exit 1 | |
3699119a JK |
40 | fi |
41 | ||
7742e157 AF |
42 | source_config |
43 | ||
fa8aca70 JR |
44 | # set all major variables |
45 | setup_ip_param | |
1c4ce04c | 46 | |
fa8aca70 JR |
47 | OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}" |
48 | ||
49 | # shutdown tleds software | |
50 | if [ "$TLEDS_DEV" = "$DEVICE" -a -x /usr/bin/tleds ]; then | |
5e6dfc29 | 51 | /usr/bin/tleds -qk "$DEVICE" |
fa8aca70 | 52 | fi |
74a7f2e4 | 53 | |
fa8aca70 | 54 | if [ -x $OTHERSCRIPT ]; then |
5e6dfc29 JR |
55 | if [ "$HANDLING" = "0" ]; then |
56 | exec $OTHERSCRIPT $CONFIG $2 | |
57 | elif [ "$HANDLING" = "1" ]; then | |
58 | $OTHERSCRIPT $CONFIG $2 | |
59 | fi | |
4ac87c24 AM |
60 | fi |
61 | ||
8772739e | 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 | |
68 | fi | |
69 | fi | |
70 | ||
f1dba8bc ER |
71 | if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ]; then |
72 | if is_yes "$IPV4_NETWORKING"; then | |
73 | set_dhcpclient | |
74 | ||
75 | case ${DHCP_CLIENT##*/} in | |
76 | pump) | |
72ecb335 | 77 | $DHCP_CLIENT -r -i ${DEVICE} |
f1dba8bc ER |
78 | RESULT=$? |
79 | ;; | |
80 | dhcpcd) | |
72ecb335 | 81 | $DHCP_CLIENT -k ${DEVICE} |
f1dba8bc | 82 | RESULT=$? |
3c2730dd | 83 | sleep 1 |
f1dba8bc ER |
84 | ;; |
85 | dhcpxd) | |
72ecb335 | 86 | $DHCP_CLIENT -k ${DEVICE} |
f1dba8bc ER |
87 | RESULT=$? |
88 | ;; | |
89 | dhclient) | |
90 | if [ -f /var/run/dhclient.pid ];then | |
91 | PID=$(cat /var/run/dhclient.pid) | |
92 | if ps ax --no-header | grep -q $PID; then | |
93 | kill $PID | |
94 | RESULT=$? | |
95 | fi | |
5e6dfc29 | 96 | fi |
f1dba8bc ER |
97 | ;; |
98 | esac | |
5e6dfc29 | 99 | fi |
7742e157 AF |
100 | fi |
101 | ||
43ed6f13 | 102 | if is_yes "${WLAN_WPA}"; then |
103 | killproc --pidfile "wpa_supplicant-${DEVICE}.pid" wpa_supplicant > /dev/null 2>&1 | |
104 | rm -f "/var/run/wpa_supplicant-${DEVICE}.pid" | |
49ee1da7 | 105 | fi |
5e6dfc29 | 106 | |
08ece317 AM |
107 | # Check to make sure the device is actually up |
108 | check_device_down && exit 0 | |
109 | ||
53a5f488 AM |
110 | if [ -n "${SUBDEVICE}" ]; then |
111 | ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE} | |
5e6dfc29 | 112 | else |
2450b5fc | 113 | LC_ALL=C ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" |
d066e443 | 114 | |
53a5f488 AM |
115 | if [ ${DEVICETYPE} = "bond" ]; then |
116 | if [ ! -x /sbin/ifenslave ]; then | |
117 | nls "%s is missing. Can't continue." "/sbin/ifenslave" | |
118 | exit 1 | |
119 | fi | |
d066e443 | 120 | |
53a5f488 AM |
121 | # get up the bonding device before enslaving |
122 | if ! check_device_down "${DEVICE}"; then | |
123 | ip link set ${DEVICE} up | |
d066e443 ER |
124 | fi |
125 | ||
53a5f488 AM |
126 | for BSVAR in $(awk '/Slave Interface:/{ print $3}' /proc/net/bonding/${DEVICE}); do |
127 | if [ "${BSVAR}" ]; then | |
128 | ifenslave -d ${DEVICE} $BSVAR | |
129 | fi | |
130 | done | |
14a0605b | 131 | fi |
53a5f488 AM |
132 | |
133 | ip link set ${DEVICE} down | |
5e6dfc29 | 134 | fi |
7742e157 | 135 | |
fa8aca70 | 136 | if [ "$HANDLING" = "4" ]; then |
5e6dfc29 | 137 | exit 0 |
4ac87c24 AM |
138 | fi |
139 | ||
5969ebf1 | 140 | if [ -n "$RESULT" ] ; then |
5e6dfc29 | 141 | if [ "$RESULT" -ne "0" ]; then |
64195bf4 | 142 | exit $RESULT |
5e6dfc29 | 143 | fi |
1c4ce04c | 144 | fi |
7742e157 | 145 | |
1c4ce04c | 146 | exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG |
fa8aca70 JR |
147 | |
148 | # This must be last line ! | |
5e6dfc29 | 149 | # vi:syntax=sh |