]> git.pld-linux.org Git - projects/rc-scripts.git/blob - sysconfig/network-scripts/ifdown
- merge from TOTALNEW branch (see NEWS for more info)
[projects/rc-scripts.git] / sysconfig / network-scripts / ifdown
1 #!/bin/sh
2 #
3 #       $Id: ifdown,v 1.27 2001/05/15 16:03:44 baggins Exp $
4 #
5 PATH=/sbin:/usr/sbin:/bin:/usr/bin
6
7 . /etc/sysconfig/network
8 . /etc/rc.d/init.d/functions
9 . /etc/sysconfig/network-scripts/.functions
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
21 DEV=$1
22
23 [ -z "$DEV" ] && {
24     nls "usage: %s <device name>" "ifdown" >&2
25     exit 1
26 }
27
28 if [ -f "/etc/sysconfig/interfaces/ifcfg-$DEV" ] ; then
29         CONFIG="/etc/sysconfig/interfaces/ifcfg-$DEV"
30 else
31         CONFIG="$DEV"
32 fi
33
34 if [ "$(id -u)" != "0" ]; then
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
42 source_config
43
44 # set all major variables
45 setup_ip_param
46
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
60 fi
61
62 # Check to make sure the device is actually up
63 check_device_down && exit 0
64
65 if [ "$BOOTPROTO" = "bootp" -o "$BOOTPROTO" = "pump" ]; then
66         /sbin/pump -r -i ${DEVICE}
67         RESULT=$?
68 fi
69
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
89 fi
90
91 ip link set ${DEVICE} down
92 ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
93
94 if [ "$HANDLING" = "4" ]; then
95     exit 0
96 fi
97
98 if [ "$RESULT" -ne "0" ]; then
99         return $RESULT
100 fi
101
102 exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG
103
104 # This must be last line !
105 # vi:syntax=sh:tw=78:ts=8:sw=4
This page took 0.051008 seconds and 3 git commands to generate.