aboutsummaryrefslogtreecommitdiffstats
path: root/rc.d/init.d/network
blob: 02b9d39fe52017d74ac451493ed10d793166b6d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/sh
#
# network       Bring up/down networking
#
# chkconfig: 345 10 97
# description: Activates/Deactivates all network interfaces configured to \
#              start at boot time.

# Source function library.
. /etc/rc.d/init.d/functions

if [ ! -f /etc/sysconfig/network ]; then
    exit 0
fi

. /etc/sysconfig/network

if [ -f /etc/sysconfig/pcmcia ]; then
	. /etc/sysconfig/pcmcia
fi


# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /sbin/ifconfig ] || exit 0

cd /etc/sysconfig/network-scripts

# find all the interfaces besides loopback.
# ignore aliases, alternative configurations, and editor backup files
interfaces=`ls ifcfg* | egrep -v '(ifcfg-lo|:)' | egrep 'ifcfg-[a-z0-9]+$' | \
            sed 's/^ifcfg-//g'`


# See how we were called.
case "$1" in
  start)
	# Turn IP forwarding on or off. We do this before bringing up the
	# interfaces to make sure we don't forward when we shouldn't, and
	# we do it even if networking isn't configured (why not?).
	if [ -d /proc/sys/net/ipv4 ]; then
	    # people could have left this out of their kernel, which isn't
	    # exactly an error
	    if [ ! -f /proc/sys/net/ipv4/ip_forward ] ; then
		echo "/proc/sys/net/ipv4/ip_forward is missing --" \
			"cannot control IP forwarding" >&2
	    else
		if [ "$FORWARD_IPV4" = "no" -o "$FORWARD_IPV4" = "false" ]; then
		    value=0
		    message="Disabling IPv4 packet forwarding."
		else
		    value=1
		    message="Enabling IPv4 packet forwarding."
		fi

		if [ $value != `cat /proc/sys/net/ipv4/ip_forward` ]; then
		    echo $message
		    echo "$value" > /proc/sys/net/ipv4/ip_forward
		fi
	    fi
	fi

	./ifup ifcfg-lo
	for i in $interfaces; do
		./ifup $i boot
	done

        touch /var/lock/subsys/network
        ;;
  stop)
	for i in $interfaces; do
		./ifdown $i boot
	done
	./ifdown ifcfg-lo
	echo "Disabling IPv4 packet forwarding."
	echo 0 > /proc/sys/net/ipv4/ip_forward
        rm -f /var/lock/subsys/network
        ;;
  status)
	echo "Configured devices:"
	echo lo $interfaces

	if [ -x /bin/linuxconf ] ; then
		eval `/bin/linuxconf --hint netdev`
		echo "Devices that are down:"
		echo $DEV_UP
		echo "Devices with modified configuration:"
		echo $DEV_RECONF
	else
		echo "Currently active devices:"
		echo `/sbin/ifconfig | grep ^[a-z] | awk '{print $1}'`
	fi
	;;
  restart)
	$0 stop
	$0 start
	;;
  reload)
	if [ -x /bin/linuxconf ] ; then
		eval `/bin/linuxconf --hint netdev`
		for device in $DEV_UP ; do
			./ifup $device boot
		done
		for device in $DEV_DOWN ; do
			./ifdown $device boot
		done
		for device in $DEV_RECONF ; do
			./ifdown $device boot
			./ifup $device boot
		done
	else
		$0 restart
	fi
  *)
        echo "Usage: network {start|stop|restart|reload|status}"
        exit 1
esac

exit 0