summaryrefslogtreecommitdiffstats
path: root/networkmanager/network.rc
blob: c75944437716b52e62b22803df6a305e5ba3dfcb (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
#!/bin/sh
# Begin $rc_base/init.d/network

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by thierryn1@hispeed.ch
# Adapted for NetworkManager by piernov <piernov@piernov.org>

# Source function library.
. /etc/sysconfig/rc
. $rc_functions

# Source network configuration
. /etc/sysconfig/network

NM_PIDFILE=/var/run/NetworkManager.pid
WICD_PIDFILE=

let TIME=30
case "$1" in
	start)
		if [ "$MANAGER" == "networkmanager" ] && [ -x /usr/sbin/NetworkManager ]; then
			boot_mesg "Setting network parameters... "
			sysctl -e -p /etc/sysctl.conf >/dev/null 2>&1
			echo_ok

			boot_mesg "Starting NetworkManager daemon..."
			loadproc NetworkManager --pid-file $NM_PIDFILE
			if [ "${NETWORKWAIT}" == "yes" ]; then 
				[ -z "${LINKDELAY}" ] && LINKDELAY=10
				boot_mesg "Waiting for network..."
				nm-online -q --timeout=$LINKDELAY || nm-online -q -x --timeout=30
				[ "$?" = "0" ] && log_success_msg "Network startup" || log_failure_msg "Network startup"
				[ -n "${NETWORKDELAY}" ] && /bin/sleep ${NETWORKDELAY}
			fi
		elif [ "$MANAGER" == "wicd" ] && [ -f /usr/share/wicd/daemon/wicd-daemon.py ]; then
			boot_mesg "Starting the wicd Daemon..."
			loadproc /usr/share/wicd/daemon/wicd-daemon.py
				if grep -v ^# /etc/fstab | grep _netdev > /dev/null; then
					while ! grep "nameserver" /etc/resolv.conf ; 
						do 
							sleep 1
							echo -n .
							let TIME=$TIME-1
							if [ $TIME -lt 1 ]; then
								boot_mesg "Time out"
								echo_failure
								exit 1
							fi
						done
					boot_mesg "Network successfully configured..."
					echo_ok
				fi
		else 
			if  [ -f /etc/rc.d/init.d/iplink ]; then
				/etc/rc.d/init.d/iplink start
			fi
		fi
		;;

	stop)
		if [ "$MANAGER" == "networkmanager" ] && [ -x /usr/sbin/NetworkManager ]; then
			boot_mesg "Stopping NetworkManager daemon..."
			killproc -p $NM_PIDFILE NetworkManager
		elif [ "$MANAGER" == "wicd" ] && [ -f /usr/share/wicd/daemon/wicd-daemon.py ]; then
			boot_mesg "Stopping the wicd Daemon..."
			loadproc /usr/share/wicd/daemon/wicd-daemon.py --kill
		else
			if  [ -f /etc/rc.d/init.d/iplink ]; then
				/etc/rc.d/init.d/iplink stop
			fi
		fi
		;;

	status)
		if [ "$MANAGER" == "networkmanager" ] && [ -x /usr/sbin/NetworkManager ]; then
			statusproc -p $NM_PIDFILE NetworkManager
		else
			if [ "$MANAGER" == "wicd" ] && [ -f /usr/share/wicd/daemon/wicd-daemon.py ]; then
				statusproc -p /var/run/wicd/wicd.pid "/usr/bin/python2 /usr/share/wicd/daemon/wicd-daemon.py"
			fi
		fi
		;;

	restart)
		stop
		sleep 3
		start
		;;

	*)
		echo "Usage: $0 {start|stop|restart|status}"
		exit 1
		;;
esac

# End $rc_base/init.d/network