pptpd.init (1521B)
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_validate_section pptpd login "${1}" \ 14 'username:string' \ 15 'password:string' 16 } 17 18 validate_pptpd_section() { 19 uci_validate_section pptpd service "${1}" \ 20 'enabled:uinteger' \ 21 'localip:string' \ 22 'remoteip:string' \ 23 'mppe:list(string):required no40 no56 stateless' \ 24 'logwtmp:uinteger' 25 } 26 27 setup_login() { 28 validate_login_section "${1}" || { 29 echo "validation failed" 30 return 1 31 } 32 33 [ -n "${username}" ] || return 0 34 [ -n "${password}" ] || return 0 35 36 echo "${username} pptp-server ${password} *" >> $CHAP_SECRETS 37 } 38 39 setup_config() { 40 local enabled localip remoteip mppe 41 42 validate_pptpd_section "${1}" || { 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 setup_config pptpd || return 65 config_foreach setup_login 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 }