]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - etc/rc.d/rfcomm_pppd_server
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / etc / rc.d / rfcomm_pppd_server
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # PROVIDE: rfcomm_pppd_server
7 # REQUIRE: DAEMON sdpd
8 # BEFORE: LOGIN
9 # KEYWORD: nojail
10
11 . /etc/rc.subr
12
13 name="rfcomm_pppd_server"
14 rcvar="rfcomm_pppd_server_enable"
15 command="/usr/sbin/rfcomm_pppd"
16 start_cmd="rfcomm_pppd_server_start"
17 stop_cmd="rfcomm_pppd_server_stop"
18 required_modules="ng_btsocket"
19
20 rfcomm_pppd_server_start_profile()
21 {
22         local _profile _profile_cleaned _punct _punct_c
23         local _bdaddr _channel _x
24
25         _profile=$1
26         _profile_cleaned=$1
27
28         _punct=". - / +"
29         for _punct_c in ${_punct} ; do
30                 _profile_cleaned=`ltr ${_profile_cleaned} ${_punct_c} '_'`
31         done
32
33         rc_flags=""
34
35         # Check for RFCOMM PPP profile bdaddr override
36         #
37         eval _bdaddr=\$rfcomm_pppd_server_${_profile_cleaned}_bdaddr
38         if [ -n "${_bdaddr}" ]; then
39                 rc_flags="${rc_flags} -a ${_bdaddr}"
40         fi
41
42         # Check for RFCOMM PPP profile channel override
43         #
44         eval _channel=\$rfcomm_pppd_server_${_profile_cleaned}_channel
45         if [ -z "${_channel}" ]; then
46                 _channel=1
47         fi
48         rc_flags="${rc_flags} -C ${_channel}"
49
50         # Check for RFCOMM PPP profile register SP override
51         #
52         eval _x=\$rfcomm_pppd_server_${_profile_cleaned}_register_sp
53         if [ -n "${_x}" ]; then
54                 if checkyesno "rfcomm_pppd_server_${_profile_cleaned}_register_sp" ; then
55                         rc_flags="${rc_flags} -S"
56                 fi
57         fi
58
59         # Check for RFCOMM PPP profile register DUN override
60         #
61         eval _x=\$rfcomm_pppd_server_${_profile_cleaned}_register_dun
62         if [ -n "${_x}" ]; then
63                 if checkyesno "rfcomm_pppd_server_${_profile_cleaned}_register_dun" ; then
64                         rc_flags="${rc_flags} -D"
65                 fi
66         fi
67
68         # Run!
69         #
70         $command -s ${rc_flags} -l ${_profile}
71 }
72
73 rfcomm_pppd_server_stop_profile()
74 {
75         local _profile
76
77         _profile=$1
78
79         /bin/pkill -f "^${command}.*[[:space:]]${_profile}\$" || \
80                 echo -n "(not running)"
81 }
82
83 rfcomm_pppd_server_start()
84 {
85         local _profile _p
86
87         _profile=$*
88         if [ -z "${_profile}" ]; then
89                 _profile=${rfcomm_pppd_server_profile}
90         fi
91
92         echo -n "Starting RFCOMM PPP profile:"
93
94         for _p in ${_profile} ; do
95                 echo -n " ${_p}"
96                 rfcomm_pppd_server_start_profile ${_p}
97         done
98
99         echo "."
100 }
101
102 rfcomm_pppd_server_stop()
103 {
104         local _profile _p
105
106         _profile=$*
107         if [ -z "${_profile}" ]; then
108                 _profile=${rfcomm_pppd_server_profile}
109         fi
110
111         echo -n "Stopping RFCOMM PPP profile:"
112
113         for _p in ${_profile} ; do
114                 echo -n " ${_p}"
115                 rfcomm_pppd_server_stop_profile ${_p}
116         done
117
118         echo "."
119 }
120
121 load_rc_config $name
122 run_rc_command $*