1#!/bin/sh 2# 3# $FreeBSD: src/etc/rc.d/ppp-user,v 1.4 2003/04/18 17:55:05 mtm Exp $ 4# 5 6# PROVIDE: ppp 7# REQUIRE: netif 8 9. /etc/rc.subr 10 11name="ppp" 12rcvar="ppp_enable" 13start_cmd="ppp_start" 14stop_cmd="ppp_stop" 15 16ppp_start() 17{ 18 local _punct_c _punct _ppp_unit 19 _profile=${ppp_profile} 20 21 _punct=". - / +" 22 for _punct_c in $_punct; do 23 _profile=`ltr ${_profile} ${_punct_c} '_'` 24 done 25 26 # Establish ppp mode. 27 # 28 if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \ 29 -a "${ppp_mode}" != "dedicated" \ 30 -a "${ppp_mode}" != "background" ]; then 31 ppp_mode="auto" 32 fi 33 34 ppp_command="/usr/sbin/ppp -quiet -${ppp_mode}" 35 36 # Switch on NAT mode? 37 # 38 case ${ppp_nat} in 39 [Yy][Ee][Ss]) 40 ppp_command="${ppp_command} -nat" 41 ;; 42 esac 43 44 # Check whether we are asked to use a specific unit 45 # 46 eval _ppp_unit=\$ppp_${_profile}_unit 47 if [ -n "${_ppp_unit}" ]; then 48 ppp_command="${ppp_command} -unit${_ppp_unit}" 49 fi 50 51 ppp_command="${ppp_command} ${ppp_profile}" 52 53 echo "Starting ppp as \"${ppp_user}\"" 54 su -m ${ppp_user} -c "exec ${ppp_command}" 55} 56 57ppp_stop() 58{ 59 pids=`check_process /usr/sbin/ppp` 60 if [ -n "${pids}" ]; then 61 for pid in ${pids}; do 62 kill -TERM ${pid} 63 done 64 wait_for_pids ${pids} 65 fi 66} 67 68load_rc_config $name 69run_rc_command "$1" 70