]> git.pld-linux.org Git - projects/rc-scripts.git/blame - sysconfig/network-scripts/ifdown
Fix double link down (qboosh).
[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
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
19fi
20
111f7a0d 21DEV=$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
28if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then
29 CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
30else
31 CONFIG="$DEV"
111f7a0d
AF
32fi
33
fa8aca70 34if [ "$(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
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
51 /usr/bin/tleds -qk "$DEVICE"
52fi
53
54if [ -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
60fi
61
fa8aca70
JR
62# Check to make sure the device is actually up
63check_device_down && exit 0
7742e157 64
fa8aca70
JR
65if [ "$BOOTPROTO" = "bootp" -o "$BOOTPROTO" = "pump" ]; then
66 /sbin/pump -r -i ${DEVICE}
67 RESULT=$?
de1fc6ce
JR
68fi
69
fa8aca70
JR
70if [ "$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
89fi
90
fa8aca70 91vlan_setup
2f316d9f 92if 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 110else
d4b86031 111 ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
553ca2f0 112 ip link set ${DEVICE} down
d4b86031 113fi
7742e157 114
fa8aca70 115if [ "$HANDLING" = "4" ]; then
5969ebf1 116 exit 0
4ac87c24
AM
117fi
118
5969ebf1
JR
119if [ -n "$RESULT" ] ; then
120 if [ "$RESULT" -ne "0" ]; then
fa8aca70 121 return $RESULT
5969ebf1 122 fi
1c4ce04c 123fi
7742e157 124
1c4ce04c 125exec /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
This page took 0.084174 seconds and 4 git commands to generate.