]>
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 | ||
f1dba8bc ER |
62 | if [ -n "$BOOTPROTO" -a "$BOOTPROTO" != "none" -a "$BOOTPROTO" != "static" ]; then |
63 | if is_yes "$IPV4_NETWORKING"; then | |
64 | set_dhcpclient | |
65 | ||
66 | case ${DHCP_CLIENT##*/} in | |
67 | pump) | |
72ecb335 | 68 | $DHCP_CLIENT -r -i ${DEVICE} |
f1dba8bc ER |
69 | RESULT=$? |
70 | ;; | |
71 | dhcpcd) | |
72ecb335 | 72 | $DHCP_CLIENT -k ${DEVICE} |
f1dba8bc | 73 | RESULT=$? |
3c2730dd | 74 | sleep 1 |
f1dba8bc ER |
75 | ;; |
76 | dhcpxd) | |
72ecb335 | 77 | $DHCP_CLIENT -k ${DEVICE} |
f1dba8bc ER |
78 | RESULT=$? |
79 | ;; | |
80 | dhclient) | |
81 | if [ -f /var/run/dhclient.pid ];then | |
82 | PID=$(cat /var/run/dhclient.pid) | |
83 | if ps ax --no-header | grep -q $PID; then | |
84 | kill $PID | |
85 | RESULT=$? | |
86 | fi | |
5e6dfc29 | 87 | fi |
f1dba8bc ER |
88 | ;; |
89 | esac | |
5e6dfc29 | 90 | fi |
7742e157 AF |
91 | fi |
92 | ||
49ee1da7 | 93 | if is_wireless_device "${DEVICE}"; then |
5e6dfc29 JR |
94 | if is_yes "${WLAN_WPA}"; then |
95 | killproc --pidfile "wpa_supplicant-${DEVICE}.pid" wpa_supplicant > /dev/null 2>&1 | |
96 | rm -f "/var/run/wpa_supplicant-${DEVICE}.pid" | |
97 | fi | |
49ee1da7 | 98 | fi |
5e6dfc29 | 99 | |
08ece317 AM |
100 | # Check to make sure the device is actually up |
101 | check_device_down && exit 0 | |
102 | ||
fa8aca70 | 103 | vlan_setup |
bf14fcab | 104 | if is_yes $ETH_VLANS && $(echo $DEVICE | grep -q ^eth) ; then |
5e6dfc29 JR |
105 | if echo "${DEVICE}" | grep -q '\.' ; then |
106 | # vlan down | |
107 | ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" | |
108 | ip link set ${DEVICE} down | |
109 | /sbin/vconfig rem ${DEVICE} 2>&1 > /dev/null | |
110 | else | |
111 | # downujemy interfejs nadrzedny do vlanow | |
bf14fcab | 112 | for VLANDEVICE in $(ls /proc/net/vlan 2> /dev/null | grep ^${DEVICE}) ; do |
5e6dfc29 JR |
113 | # najpierw wszystkie vlany po kolei |
114 | ip addr flush dev ${VLANDEVICE} 2>&1 | grep -v "Nothing to flush" | |
115 | ip link set ${VLANDEVICE} down | |
116 | /sbin/vconfig rem ${VLANDEVICE} 2>&1 > /dev/null | |
117 | done | |
118 | # a potem dopiero interfejs nadrzedny | |
119 | ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" | |
120 | ip link set ${DEVICE} down | |
121 | fi | |
122 | else | |
14a0605b ER |
123 | if [ -n "${SUBDEVICE}" ]; then |
124 | ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE} | |
125 | else | |
126 | ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" | |
d066e443 ER |
127 | |
128 | if [ ${DEVICETYPE} = "bond" ]; then | |
129 | if [ ! -x /sbin/ifenslave ]; then | |
130 | nls "%s is missing. Can't continue." "/sbin/ifenslave" | |
131 | exit 1 | |
132 | fi | |
133 | ||
134 | # get up the bonding device before enslaving | |
135 | if ! check_device_down "${DEVICE}"; then | |
136 | ip link set ${DEVICE} up | |
137 | fi | |
138 | ||
139 | for BSVAR in $(awk '/Slave Interface:/{ print $3}' /proc/net/bonding/${DEVICE}); do | |
140 | if [ "${BSVAR}" ]; then | |
141 | ifenslave -d ${DEVICE} $BSVAR | |
142 | fi | |
143 | done | |
144 | fi | |
145 | ||
14a0605b ER |
146 | ip link set ${DEVICE} down |
147 | fi | |
5e6dfc29 | 148 | fi |
7742e157 | 149 | |
fa8aca70 | 150 | if [ "$HANDLING" = "4" ]; then |
5e6dfc29 | 151 | exit 0 |
4ac87c24 AM |
152 | fi |
153 | ||
5969ebf1 | 154 | if [ -n "$RESULT" ] ; then |
5e6dfc29 JR |
155 | if [ "$RESULT" -ne "0" ]; then |
156 | return $RESULT | |
157 | fi | |
1c4ce04c | 158 | fi |
7742e157 | 159 | |
1c4ce04c | 160 | exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG |
fa8aca70 JR |
161 | |
162 | # This must be last line ! | |
5e6dfc29 | 163 | # vi:syntax=sh |