ppp revision 177649
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/ppp 177649 2008-03-26 21:54:48Z brooks $ 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" 16stop_cmd="ppp_stop" 17start_postcmd="ppp_poststart" 18 19ppp_start_profile() 20{ 21 local _ppp_profile _ppp_mode _ppp_nat 22 23 _ppp_profile=$1 24 _ppp_profile_cleaned=$1 25 _punct=". - / +" 26 for _punct_c in $_punct; do 27 _ppp_profile_cleaned=`ltr ${_ppp_profile_cleaned} ${_punct_c} '_'` 28 done 29 30 # Check for ppp profile mode override. 31 # 32 eval _ppp_mode=\$ppp_${_ppp_profile_cleaned}_mode 33 if [ -z "$_ppp_mode" ]; then 34 _ppp_mode=$ppp_mode 35 fi 36 37 # Check for ppp profile nat override. 38 # 39 eval _ppp_nat=\$ppp_${_ppp_profile_cleaned}_nat 40 if [ -z "$_ppp_nat" ]; then 41 _ppp_nat=$ppp_nat 42 fi 43 44 # Establish ppp mode. 45 # 46 if [ "${_ppp_mode}" != "ddial" -a "${_ppp_mode}" != "direct" \ 47 -a "${_ppp_mode}" != "dedicated" \ 48 -a "${_ppp_mode}" != "background" ]; then 49 _ppp_mode="auto" 50 fi 51 52 rc_flags="-quiet -${_ppp_mode}" 53 54 # Switch on NAT mode? 55 # 56 case ${_ppp_nat} in 57 [Yy][Ee][Ss]) 58 rc_flags="$rc_flags -nat" 59 ;; 60 esac 61 62 # Run! 63 # 64 su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}" 65} 66 67ppp_start() 68{ 69 local _ppp_profile _p 70 71 _ppp_profile=$* 72 if [ -z "${_ppp_profile}" ]; then 73 _ppp_profile=$ppp_profile 74 fi 75 76 echo -n "Starting PPP profile:" 77 78 for _p in $_ppp_profile; do 79 echo -n " $_p" 80 ppp_start_profile $_p 81 done 82 83 echo "." 84} 85 86ppp_poststart() 87{ 88 # Re-Sync ipfilter and pf so they pick up any new network interfaces 89 # 90 /etc/rc.d/ipfilter quietresync 91 /etc/rc.d/pf quietresync 92} 93 94ppp_stop_profile() { 95 local _ppp_profile 96 97 _ppp_profile=$1 98 99 /bin/pkill -f "^${command}.*[[:space:]]${_ppp_profile}\$" || \ 100 echo -n "(not running)" 101} 102 103ppp_stop() { 104 local _ppp_profile _p 105 106 _ppp_profile=$* 107 if [ -z "${_ppp_profile}" ]; then 108 _ppp_profile=$ppp_profile 109 fi 110 111 echo -n "Stopping PPP profile:" 112 113 for _p in $_ppp_profile; do 114 echo -n " $_p" 115 ppp_stop_profile $_p 116 done 117 118 echo "." 119} 120 121load_rc_config $name 122run_rc_command $* 123