yggdrasil: bump to 0.5.4
[feed/packages.git] / net / pptpd / files / pptpd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2015 OpenWrt.org
3
4 START=60
5 USE_PROCD=1
6
7 BIN=/usr/sbin/pptpd
8 CONFIG=/var/etc/pptpd.conf
9 CHAP_SECRETS=/var/etc/chap-secrets
10 OPTIONS_PPTP=/var/etc/options.pptpd
11
12 validate_login_section() {
13 uci_load_validate pptpd login "$1" "$2" \
14 'username:string' \
15 'password:string' \
16 'remoteip:string'
17 }
18
19 validate_pptpd_section() {
20 uci_load_validate pptpd service "$1" "$2" \
21 'enabled:uinteger' \
22 'localip:string' \
23 'remoteip:string' \
24 'mppe:list(string):required no40 no56 stateless' \
25 'logwtmp:uinteger'
26 }
27
28 setup_login() {
29 [ "$2" = 0 ] || {
30 echo "validation failed"
31 return 1
32 }
33
34 [ -n "$username" ] || return 0
35 [ -n "$password" ] || return 0
36 [ -n "$remoteip" ] || remoteip=*
37
38 echo "$username pptp-server $password $remoteip" >> $CHAP_SECRETS
39 }
40
41 setup_config() {
42 [ "$2" = 0 ] || {
43 echo "validation failed"
44 return 1
45 }
46
47 [ "$enabled" -eq 0 ] && return 1
48
49 mkdir -p /var/etc
50 cp /etc/pptpd.conf $CONFIG
51 cp /etc/ppp/options.pptpd $OPTIONS_PPTP
52
53 [ -n "$localip" ] && echo "localip $localip" >> $CONFIG
54 [ -n "$remoteip" ] && echo "remoteip $remoteip" >> $CONFIG
55 [ "$logwtmp" -eq 1 ] && echo "logwtmp" >> $CONFIG
56
57 echo "mppe $(echo $mppe | sed -e 's/\s/,/g')" >> $OPTIONS_PPTP
58
59 return 0
60 }
61
62 start_service() {
63 config_load pptpd
64 validate_pptpd_section pptpd setup_config || return
65 config_foreach validate_login_section login setup_login
66
67 ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
68
69 procd_open_instance
70 procd_set_param command $BIN -c $CONFIG --fg -o $OPTIONS_PPTP
71 procd_close_instance
72 }
73
74 service_triggers () {
75 procd_add_reload_trigger "pptpd"
76
77 procd_open_validate
78 validate_pptpd_section
79 validate_login_section
80 procd_close_validate
81 }