]>
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 | |
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 | |
19 | fi | |
20 | ||
111f7a0d | 21 | DEV=$1 |
7742e157 | 22 | |
111f7a0d | 23 | [ -z "$DEV" ] && { |
fa8aca70 | 24 | nls "Usage: %s <device name>" "ifdown" >&2 |
7742e157 AF |
25 | exit 1 |
26 | } | |
27 | ||
03f9cfee JR |
28 | if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then |
29 | CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV" | |
30 | else | |
31 | CONFIG="$DEV" | |
111f7a0d AF |
32 | fi |
33 | ||
fa8aca70 | 34 | if [ "$(id -u)" != "0" ]; then |
3699119a JK |
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 | |
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 | |
51 | /usr/bin/tleds -qk "$DEVICE" | |
52 | fi | |
53 | ||
54 | if [ -x $OTHERSCRIPT ]; then | |
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 | ||
fa8aca70 JR |
62 | # Check to make sure the device is actually up |
63 | check_device_down && exit 0 | |
7742e157 | 64 | |
fa8aca70 JR |
65 | if [ "$BOOTPROTO" = "bootp" -o "$BOOTPROTO" = "pump" ]; then |
66 | /sbin/pump -r -i ${DEVICE} | |
67 | RESULT=$? | |
de1fc6ce JR |
68 | fi |
69 | ||
fa8aca70 JR |
70 | if [ "$BOOTPROTO" = "dhcp" ]; then |
71 | if [ -x /sbin/dhcpcd ];then | |
72 | /sbin/dhcpcd -k ${DEVICE} | |
73 | RESULT=$? | |
74 | elif [ -x /sbin/dhclient ];then | |
75 | if [ -f /var/run/dhclient.pid ];then | |
76 | PID=$(cat /var/run/dhclient.pid) | |
77 | if ps ax --no-header|grep -q $PID;then | |
78 | kill $PID | |
79 | RESULT=$? | |
80 | fi | |
81 | fi | |
82 | elif [ -x /sbin/dhcpxd ];then | |
83 | /sbin/dhcpxd -k ${DEVICE} | |
84 | RESULT=$? | |
85 | elif [ -x /sbin/pump ];then | |
86 | pump -r -i ${DEVICE} | |
87 | RESULT=$? | |
88 | fi | |
7742e157 AF |
89 | fi |
90 | ||
fa8aca70 | 91 | vlan_setup |
2f316d9f | 92 | if is_yes $ETH_VLANS && `echo $DEVICE | grep -q ^eth` ; then |
d4b86031 | 93 | if echo "${DEVICE}" | grep -q '\.' ; then |
ade6c583 | 94 | # vlan down |
2f316d9f | 95 | ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" |
553ca2f0 | 96 | ip link set ${DEVICE} down |
2f316d9f | 97 | /sbin/vconfig rem ${DEVICE} 2>&1 > /dev/null |
d4b86031 | 98 | else |
2f316d9f | 99 | # downujemy interfejs nadrzedny do vlanow |
ade6c583 | 100 | for VLANDEVICE in `ls /proc/net/vlan 2> /dev/null | grep ^${DEVICE}` ; do |
2f316d9f | 101 | # najpierw wszystkie vlany po kolei |
2f316d9f | 102 | ip addr flush dev ${VLANDEVICE} 2>&1 | grep -v "Nothing to flush" |
553ca2f0 | 103 | ip link set ${VLANDEVICE} down |
2f316d9f JR |
104 | /sbin/vconfig rem ${VLANDEVICE} 2>&1 > /dev/null |
105 | done | |
106 | # a potem dopiero interfejs nadrzedny | |
2f316d9f | 107 | ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" |
553ca2f0 | 108 | ip link set ${DEVICE} down |
2f316d9f | 109 | fi |
d4b86031 | 110 | else |
d4b86031 | 111 | ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush" |
553ca2f0 | 112 | ip link set ${DEVICE} down |
d4b86031 | 113 | fi |
7742e157 | 114 | |
fa8aca70 | 115 | if [ "$HANDLING" = "4" ]; then |
5969ebf1 | 116 | exit 0 |
4ac87c24 AM |
117 | fi |
118 | ||
5969ebf1 JR |
119 | if [ -n "$RESULT" ] ; then |
120 | if [ "$RESULT" -ne "0" ]; then | |
fa8aca70 | 121 | return $RESULT |
5969ebf1 | 122 | fi |
1c4ce04c | 123 | fi |
7742e157 | 124 | |
1c4ce04c | 125 | exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG |
fa8aca70 JR |
126 | |
127 | # This must be last line ! | |
128 | # vi:syntax=sh:tw=78:ts=8:sw=4 |