lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

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 }