b1381b27312661d0bb1f5cf719dd859f68f10abc
[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         cp /etc/pptpd.conf $CONFIG
30
31         config_get localip "$section" localip
32         config_get remoteip "$section" remoteip
33         [ -n "$localip" ] && echo "localip  $localip" >> $CONFIG
34         [ -n "$remoteip" ] && echo "remoteip  $remoteip" >> $CONFIG
35         return 0
36 }
37
38 start_pptpd() {
39         [ -f $DEFAULT ] && . $DEFAULT
40         mkdir -p $RUN_D
41         for m in arc4 sha1_generic slhc crc-ccitt ppp_generic ppp_async ppp_mppe; do
42                 insmod $m >/dev/null 2>&1
43         done
44         ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
45         service_start $BIN $OPTIONS -c $CONFIG
46 }
47
48 start() {
49         config_load pptpd
50         setup_config pptpd || return
51         config_foreach setup_login login
52         start_pptpd
53 }
54
55 stop() {
56         service_stop $BIN
57 }