summaryrefslogtreecommitdiff
path: root/etc/rc.d/ppp
blob: 2b66eebf60bfb7ec958a106f49f335f7bf1a837a (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
#!/bin/sh
#
# $NetBSD: ppp,v 1.6 2002/03/22 04:33:59 thorpej Exp $
#

# PROVIDE: ppp
# REQUIRE: mountcritremote syslogd
# BEFORE:  SERVERS
#
#	Note that this means that syslogd will not be listening on
#	any PPP addresses.  This is considered a feature.
#

. /etc/rc.subr

name="ppp"
start_cmd="ppp_start"
stop_cmd="ppp_stop"
sig_stop="-INT"
sig_hup="-HUP"
hup_cmd="ppp_hup"
extra_commands="hup"

ppp_start()
{
	#	/etc/ppp/peers and $ppp_peers contain boot configuration
	#	information for pppd.  each value in $ppp_peers that has a
	#	file in /etc/ppp/peers of the same name, will be run as
	#	`pppd call <peer>'.
	#
	if [ -n "$ppp_peers" ]; then
		set -- $ppp_peers
		echo -n "Starting pppd:"
		while [ $# -ge 1 ]; do
			peer=$1
			shift
			if [ -f /etc/ppp/peers/$peer ]; then
				pppd call $peer
				echo -n " $peer"
			fi
		done
		echo "."
	fi
}

ppp_hup()
{
	pids="`check_process pppd`"
	if [ -n "$pids" ]; then
		for pid in $pids; do
			kill $sig_hup $pid
		done
	fi
}

ppp_stop()
{
	pids="`check_process pppd`"
	if [ -n "$pids" ]; then
		for pid in $pids; do
			kill $sig_stop $pid
		done
	fi
}

load_rc_config $name
run_rc_command "$1"