]> git.pld-linux.org Git - projects/rc-scripts.git/blame - sysconfig/network-scripts/ifdown
- force LC_ALL=C when grepping data from possibly localized program outputs
[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
8772739e 62if 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
69fi
70
f1dba8bc
ER
71if [ -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
100fi
101
43ed6f13 102if 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 105fi
5e6dfc29 106
08ece317
AM
107# Check to make sure the device is actually up
108check_device_down && exit 0
109
53a5f488
AM
110if [ -n "${SUBDEVICE}" ]; then
111 ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE}
5e6dfc29 112else
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 134fi
7742e157 135
fa8aca70 136if [ "$HANDLING" = "4" ]; then
5e6dfc29 137 exit 0
4ac87c24
AM
138fi
139
5969ebf1 140if [ -n "$RESULT" ] ; then
5e6dfc29 141 if [ "$RESULT" -ne "0" ]; then
64195bf4 142 exit $RESULT
5e6dfc29 143 fi
1c4ce04c 144fi
7742e157 145
1c4ce04c 146exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG
fa8aca70
JR
147
148# This must be last line !
5e6dfc29 149# vi:syntax=sh
This page took 0.18172 seconds and 4 git commands to generate.