#!/bin/sh
#
# $NetBSD: ppp,v 1.11 2013/01/13 18:47:58 prlw1 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.
#

$_rc_subr_loaded . /etc/rc.subr

name="ppp"
rcvar=$name
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"
