- #!/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
-
- validate_login_section() {
- uci_validate_section pptpd login "${1}" \
- 'username:string' \
- 'password:string'
- }
-
- validate_pptpd_section() {
- uci_validate_section pptpd service "${1}" \
- 'enabled:uinteger' \
- 'localip:string' \
- 'remoteip:string'
- }
-
- setup_login() {
- validate_login_section "${1}" || {
- echo "validation failed"
- return 1
- }
-
- [ -n "${username}" ] || return 0
- [ -n "${password}" ] || return 0
-
- echo "${username} pptp-server ${password} *" >> $CHAP_SECRETS
- }
-
- setup_config() {
- validate_pptpd_section "${1}" || {
- echo "validation failed"
- return 1
- }
-
- [ "$enabled" -eq 0 ] && return 1
-
- mkdir -p /var/etc
- cp /etc/pptpd.conf $CONFIG
-
- [ -n "$localip" ] && echo "localip $localip" >> $CONFIG
- [ -n "$remoteip" ] && echo "remoteip $remoteip" >> $CONFIG
-
- return 0
- }
-
- start_service() {
- config_load pptpd
- setup_config pptpd || return
- config_foreach setup_login login
-
- ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
-
- procd_open_instance
- procd_set_param command $BIN -c $CONFIG
- procd_close_instance
- }
|