]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/ppp
Import OpenBSD's sysctl hardware sensors framework.
[FreeBSD/FreeBSD.git] / etc / rc.d / ppp
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: ppp
7 # REQUIRE: netif isdnd
8 # KEYWORD: nojail
9
10 . /etc/rc.subr
11
12 name="ppp"
13 rcvar=`set_rcvar`
14 command="/usr/sbin/${name}"
15 start_cmd="ppp_start"
16 start_postcmd="ppp_poststart"
17
18 ppp_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
61 ppp_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
75 ppp_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
83 load_rc_config $name
84 run_rc_command "$1"