0d0639feefc13ec4c721effd4187ac566484d4a6
[feed/packages.git] / net / pptpd / files / pptpd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2006 OpenWrt.org
3
4 START=60
5 BIN=/usr/sbin/pptpd
6 DEFAULT=/etc/default/$BIN
7 RUN_D=/var/run
8 PID_F=$RUN_D/$BIN.pid
9 CONFIG=/var/etc/pptpd.conf
10 CHAP_SECRETS=/var/etc/chap-secrets
11
12 setup_login() {
13 local section="$1"
14
15 config_get username "$section" username
16 config_get password "$section" password
17 [ -n "$username" ] || return 0
18 [ -n "$password" ] || return 0
19
20 echo "$username pptp-server $password *" >> $CHAP_SECRETS
21 }
22
23 setup_config() {
24 local section="$1"
25
26 config_get enabled "$section" enabled
27 [ "$enabled" -eq 0 ] && return 1
28
29 mkdir -p /var/etc
30 cp /etc/pptpd.conf $CONFIG
31
32 config_get localip "$section" localip
33 config_get remoteip "$section" remoteip
34 [ -n "$localip" ] && echo "localip $localip" >> $CONFIG
35 [ -n "$remoteip" ] && echo "remoteip $remoteip" >> $CONFIG
36 return 0
37 }
38
39 start_pptpd() {
40 [ -f $DEFAULT ] && . $DEFAULT
41 mkdir -p $RUN_D
42 for m in arc4 sha1_generic slhc crc-ccitt ppp_generic ppp_async ppp_mppe; do
43 insmod $m >/dev/null 2>&1
44 done
45 ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
46 service_start $BIN $OPTIONS -c $CONFIG
47 }
48
49 start() {
50 config_load pptpd
51 setup_config pptpd || return
52 config_foreach setup_login login
53 start_pptpd
54 }
55
56 stop() {
57 service_stop $BIN
58 }