ppp revision 172586
1#!/bin/sh
2#
3# $FreeBSD: head/etc/rc.d/ppp 172586 2007-10-12 16:35:36Z emax $
4#
5
6# PROVIDE: ppp
7# REQUIRE: netif isdnd
8# KEYWORD: nojail
9
10. /etc/rc.subr
11
12name="ppp"
13rcvar=`set_rcvar`
14command="/usr/sbin/${name}"
15start_cmd="ppp_start"
16start_postcmd="ppp_poststart"
17
18ppp_start_profile()
19{
20	local _ppp_profile _ppp_mode _ppp_nat
21
22	_ppp_profile=$1
23
24	# Check for ppp profile mode override.
25	#
26	eval _ppp_mode=\$ppp_${_ppp_profile}_mode
27	if [ -z "$_ppp_mode" ]; then
28		_ppp_mode=$ppp_mode
29	fi
30
31	# Check for ppp profile nat override.
32	#
33	eval _ppp_nat=\$ppp_${_ppp_profile}_nat
34	if [ -z "$_ppp_nat" ]; then
35		_ppp_nat=$ppp_nat
36	fi
37
38	# Establish ppp mode.
39	#
40	if [ "${_ppp_mode}" != "ddial" -a "${_ppp_mode}" != "direct" \
41		-a "${_ppp_mode}" != "dedicated" \
42		-a "${_ppp_mode}" != "background" ]; then
43		_ppp_mode="auto"
44	fi
45
46	rc_flags="-quiet -${_ppp_mode}"
47
48	# Switch on NAT mode?
49	#
50	case ${_ppp_nat} in
51	[Yy][Ee][Ss])
52		rc_flags="$rc_flags -nat"
53		;;
54	esac
55
56	# Run!
57	#
58	su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
59}
60
61ppp_start()
62{
63	local _p
64
65	echo -n "Starting PPP profile:"
66
67	for _p in $ppp_profile; do
68		echo -n " $_p"
69		ppp_start_profile $_p
70	done
71
72	echo "."
73}
74
75ppp_poststart()
76{
77	# Re-Sync ipfilter and pf so they pick up any new network interfaces
78	#
79	/etc/rc.d/ipfilter resync
80	/etc/rc.d/pf resync
81}
82
83load_rc_config $name
84run_rc_command "$1"
85