10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# 40696600cSBjoern A. Zeeb 50696600cSBjoern A. Zeeb# PROVIDE: rfcomm_pppd_server 60696600cSBjoern A. Zeeb# REQUIRE: DAEMON sdpd 70696600cSBjoern A. Zeeb# BEFORE: LOGIN 80696600cSBjoern A. Zeeb# KEYWORD: nojail 90696600cSBjoern A. Zeeb 100696600cSBjoern A. Zeeb. /etc/rc.subr 110696600cSBjoern A. Zeeb 120696600cSBjoern A. Zeebname="rfcomm_pppd_server" 130696600cSBjoern A. Zeebdesc="RFCOMM PPP daemon" 140696600cSBjoern A. Zeebrcvar="rfcomm_pppd_server_enable" 150696600cSBjoern A. Zeebcommand="/usr/sbin/rfcomm_pppd" 160696600cSBjoern A. Zeebstart_cmd="rfcomm_pppd_server_start" 170696600cSBjoern A. Zeebstop_cmd="rfcomm_pppd_server_stop" 180696600cSBjoern A. Zeebrequired_modules="ng_btsocket" 190696600cSBjoern A. Zeeb 200696600cSBjoern A. Zeebrfcomm_pppd_server_start_profile() 210696600cSBjoern A. Zeeb{ 220696600cSBjoern A. Zeeb local _profile _profile_cleaned _punct _punct_c 230696600cSBjoern A. Zeeb local _bdaddr _channel _x 240696600cSBjoern A. Zeeb 250696600cSBjoern A. Zeeb _profile=$1 260696600cSBjoern A. Zeeb _profile_cleaned=$1 270696600cSBjoern A. Zeeb 280696600cSBjoern A. Zeeb _punct=". - / +" 290696600cSBjoern A. Zeeb for _punct_c in ${_punct} ; do 300696600cSBjoern A. Zeeb _profile_cleaned=`ltr ${_profile_cleaned} ${_punct_c} '_'` 310696600cSBjoern A. Zeeb done 320696600cSBjoern A. Zeeb 330696600cSBjoern A. Zeeb rc_flags="" 340696600cSBjoern A. Zeeb 350696600cSBjoern A. Zeeb # Check for RFCOMM PPP profile bdaddr override 360696600cSBjoern A. Zeeb # 370696600cSBjoern A. Zeeb eval _bdaddr=\$rfcomm_pppd_server_${_profile_cleaned}_bdaddr 380696600cSBjoern A. Zeeb if [ -n "${_bdaddr}" ]; then 390696600cSBjoern A. Zeeb rc_flags="${rc_flags} -a ${_bdaddr}" 400696600cSBjoern A. Zeeb fi 410696600cSBjoern A. Zeeb 420696600cSBjoern A. Zeeb # Check for RFCOMM PPP profile channel override 430696600cSBjoern A. Zeeb # 440696600cSBjoern A. Zeeb eval _channel=\$rfcomm_pppd_server_${_profile_cleaned}_channel 450696600cSBjoern A. Zeeb if [ -z "${_channel}" ]; then 460696600cSBjoern A. Zeeb _channel=1 470696600cSBjoern A. Zeeb fi 480696600cSBjoern A. Zeeb rc_flags="${rc_flags} -C ${_channel}" 490696600cSBjoern A. Zeeb 500696600cSBjoern A. Zeeb # Check for RFCOMM PPP profile register SP override 510696600cSBjoern A. Zeeb # 520696600cSBjoern A. Zeeb eval _x=\$rfcomm_pppd_server_${_profile_cleaned}_register_sp 530696600cSBjoern A. Zeeb if [ -n "${_x}" ]; then 540696600cSBjoern A. Zeeb if checkyesno "rfcomm_pppd_server_${_profile_cleaned}_register_sp" ; then 550696600cSBjoern A. Zeeb rc_flags="${rc_flags} -S" 560696600cSBjoern A. Zeeb fi 570696600cSBjoern A. Zeeb fi 580696600cSBjoern A. Zeeb 590696600cSBjoern A. Zeeb # Check for RFCOMM PPP profile register DUN override 600696600cSBjoern A. Zeeb # 610696600cSBjoern A. Zeeb eval _x=\$rfcomm_pppd_server_${_profile_cleaned}_register_dun 620696600cSBjoern A. Zeeb if [ -n "${_x}" ]; then 630696600cSBjoern A. Zeeb if checkyesno "rfcomm_pppd_server_${_profile_cleaned}_register_dun" ; then 640696600cSBjoern A. Zeeb rc_flags="${rc_flags} -D" 650696600cSBjoern A. Zeeb fi 660696600cSBjoern A. Zeeb fi 670696600cSBjoern A. Zeeb 680696600cSBjoern A. Zeeb # Run! 690696600cSBjoern A. Zeeb # 700696600cSBjoern A. Zeeb $command -s ${rc_flags} -l ${_profile} 710696600cSBjoern A. Zeeb} 720696600cSBjoern A. Zeeb 730696600cSBjoern A. Zeebrfcomm_pppd_server_stop_profile() 740696600cSBjoern A. Zeeb{ 750696600cSBjoern A. Zeeb local _profile 760696600cSBjoern A. Zeeb 770696600cSBjoern A. Zeeb _profile=$1 780696600cSBjoern A. Zeeb 790696600cSBjoern A. Zeeb /bin/pkill -f "^${command}.*[[:space:]]${_profile}\$" || \ 800696600cSBjoern A. Zeeb echo -n "(not running)" 810696600cSBjoern A. Zeeb} 820696600cSBjoern A. Zeeb 830696600cSBjoern A. Zeebrfcomm_pppd_server_start() 840696600cSBjoern A. Zeeb{ 850696600cSBjoern A. Zeeb local _profile _p 860696600cSBjoern A. Zeeb 870696600cSBjoern A. Zeeb _profile=$* 880696600cSBjoern A. Zeeb if [ -z "${_profile}" ]; then 890696600cSBjoern A. Zeeb _profile=${rfcomm_pppd_server_profile} 900696600cSBjoern A. Zeeb fi 910696600cSBjoern A. Zeeb 9219a6267dSJose Luis Duran startmsg -n "Starting RFCOMM PPP profile:" 930696600cSBjoern A. Zeeb 940696600cSBjoern A. Zeeb for _p in ${_profile} ; do 9519a6267dSJose Luis Duran startmsg -n " ${_p}" 960696600cSBjoern A. Zeeb rfcomm_pppd_server_start_profile ${_p} 970696600cSBjoern A. Zeeb done 980696600cSBjoern A. Zeeb 9919a6267dSJose Luis Duran startmsg "." 1000696600cSBjoern A. Zeeb} 1010696600cSBjoern A. Zeeb 1020696600cSBjoern A. Zeebrfcomm_pppd_server_stop() 1030696600cSBjoern A. Zeeb{ 1040696600cSBjoern A. Zeeb local _profile _p 1050696600cSBjoern A. Zeeb 1060696600cSBjoern A. Zeeb _profile=$* 1070696600cSBjoern A. Zeeb if [ -z "${_profile}" ]; then 1080696600cSBjoern A. Zeeb _profile=${rfcomm_pppd_server_profile} 1090696600cSBjoern A. Zeeb fi 1100696600cSBjoern A. Zeeb 1110696600cSBjoern A. Zeeb echo -n "Stopping RFCOMM PPP profile:" 1120696600cSBjoern A. Zeeb 1130696600cSBjoern A. Zeeb for _p in ${_profile} ; do 1140696600cSBjoern A. Zeeb echo -n " ${_p}" 1150696600cSBjoern A. Zeeb rfcomm_pppd_server_stop_profile ${_p} 1160696600cSBjoern A. Zeeb done 1170696600cSBjoern A. Zeeb 1180696600cSBjoern A. Zeeb echo "." 1190696600cSBjoern A. Zeeb} 1200696600cSBjoern A. Zeeb 1210696600cSBjoern A. Zeebload_rc_config $name 122*f99f0ee1SAlexander Leidinger 123*f99f0ee1SAlexander Leidinger# doesn't make sense to run in a svcj: nojail keyword 124*f99f0ee1SAlexander Leidingerrfcomm_pppd_server_svcj="NO" 125*f99f0ee1SAlexander Leidinger 1260696600cSBjoern A. Zeebrun_rc_command $* 127