- #!/bin/sh /etc/rc.common
- # Copyright (C) 2015 OpenWrt.org
-
- START=60
- USE_PROCD=1
-
- BIN=/usr/sbin/pptpd
- CONFIG=/var/etc/pptpd.conf
- CHAP_SECRETS=/var/etc/chap-secrets
- OPTIONS_PPTP=/var/etc/options.pptpd
-
- validate_login_section() {
- uci_load_validate pptpd login "$1" "$2" \
- 'username:string' \
- 'password:string' \
- 'remoteip:string'
- }
-
- validate_pptpd_section() {
- uci_load_validate pptpd service "$1" "$2" \
- 'enabled:uinteger' \
- 'localip:string' \
- 'remoteip:string' \
- 'mppe:list(string):required no40 no56 stateless' \
- 'logwtmp:uinteger'
- }
-
- setup_login() {
- [ "$2" = 0 ] || {
- echo "validation failed"
- return 1
- }
-
- [ -n "$username" ] || return 0
- [ -n "$password" ] || return 0
- [ -n "$remoteip" ] || remoteip=*
-
- echo "$username pptp-server $password $remoteip" >> $CHAP_SECRETS
- }
-
- setup_config() {
- [ "$2" = 0 ] || {
- echo "validation failed"
- return 1
- }
-
- [ "$enabled" -eq 0 ] && return 1
-
- mkdir -p /var/etc
- cp /etc/pptpd.conf $CONFIG
- cp /etc/ppp/options.pptpd $OPTIONS_PPTP
-
- [ -n "$localip" ] && echo "localip $localip" >> $CONFIG
- [ -n "$remoteip" ] && echo "remoteip $remoteip" >> $CONFIG
- [ "$logwtmp" -eq 1 ] && echo "logwtmp" >> $CONFIG
-
- echo "mppe $(echo $mppe | sed -e 's/\s/,/g')" >> $OPTIONS_PPTP
-
- return 0
- }
-
- start_service() {
- config_load pptpd
- validate_pptpd_section pptpd setup_config || return
- config_foreach validate_login_section login setup_login
-
- ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
-
- procd_open_instance
- procd_set_param command $BIN -c $CONFIG --fg -o $OPTIONS_PPTP
- procd_close_instance
- }
-
- service_triggers () {
- procd_add_reload_trigger "pptpd"
-
- procd_open_validate
- validate_pptpd_section
- validate_login_section
- procd_close_validate
- }
|