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