]> git.pld-linux.org Git - projects/rc-scripts.git/blame - sysconfig/network-scripts/ifdown
- tabs
[projects/rc-scripts.git] / sysconfig / network-scripts / ifdown
CommitLineData
12de71be 1#!/bin/sh
b0443108 2#
ec8b15cb 3# $Id$
b0443108 4#
7742e157
AF
5PATH=/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
12if 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
19fi
20
111f7a0d 21DEV=$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 28if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then
5e6dfc29 29 CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
03f9cfee 30else
5e6dfc29 31 CONFIG="$DEV"
111f7a0d
AF
32fi
33
fa8aca70 34if [ "$(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
40fi
41
7742e157
AF
42source_config
43
fa8aca70
JR
44# set all major variables
45setup_ip_param
1c4ce04c 46
fa8aca70
JR
47OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}"
48
49# shutdown tleds software
50if [ "$TLEDS_DEV" = "$DEVICE" -a -x /usr/bin/tleds ]; then
5e6dfc29 51 /usr/bin/tleds -qk "$DEVICE"
fa8aca70 52fi
74a7f2e4 53
fa8aca70 54if [ -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
60fi
61
f1dba8bc
ER
62if [ -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
91fi
92
49ee1da7 93if 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 98fi
5e6dfc29 99
08ece317
AM
100# Check to make sure the device is actually up
101check_device_down && exit 0
102
fa8aca70 103vlan_setup
bf14fcab 104if 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
122else
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 148fi
7742e157 149
fa8aca70 150if [ "$HANDLING" = "4" ]; then
5e6dfc29 151 exit 0
4ac87c24
AM
152fi
153
5969ebf1 154if [ -n "$RESULT" ] ; then
5e6dfc29
JR
155 if [ "$RESULT" -ne "0" ]; then
156 return $RESULT
157 fi
1c4ce04c 158fi
7742e157 159
1c4ce04c 160exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG
fa8aca70
JR
161
162# This must be last line !
5e6dfc29 163# vi:syntax=sh
This page took 0.106594 seconds and 4 git commands to generate.