#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2015 PandoraBox Team

START=60
BIN=/usr/sbin/pptpd
DEFAULT=/etc/default/$BIN
RUN_D=/var/run
PID_F=$RUN_D/$BIN.pid
CONFIG=/var/etc/pptpd.conf
PPTPD_OPT=/var/etc/pptpd_options
CHAP_SECRETS=/var/etc/chap-secrets

setup_login() {
	local section="$1"

	config_get username "$section" username
	config_get password "$section" password
	config_get ipaddr "$section" ipaddr "*"
	[ -n "$username" ] || return 0
	[ -n "$password" ] || return 0

	echo "$username pptp-server $password $ipaddr" >> $CHAP_SECRETS
}

setup_config() {
	local section="$1"

	config_get enabled "$section" enabled
	[ "$enabled" -eq 0 ] && return 1

	config_get localip "$section" localip
	config_get remoteip "$section" remoteip
	config_get dnssvrs "$section" dnssvrs 114.114.114.114

	mkdir -p /var/etc
	cp /etc/pptpd.conf $CONFIG
	cp /etc/ppp/options.pptpd $PPTPD_OPT

	sed -e "s#|OPTFILE|#$PPTPD_OPT#g" \
		-e "s#|LOCALIP|#$localip#g" \
		-e "s#|REMOTEIP|#$remoteip#g" \
		/etc/pptpd.conf > $CONFIG


	for i in $dnssvrs
	do
		echo "ms-dns $i" >> $PPTPD_OPT
	done
	return 0
}

start_pptpd() {
	[ -f $DEFAULT ] && . $DEFAULT
	mkdir -p $RUN_D
	for m in arc4 sha1_generic slhc crc-ccitt ppp_generic ppp_async ppp_mppe; do
		insmod $m >/dev/null 2>&1
	done
	ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
	service_start $BIN $OPTIONS -c $CONFIG
}

start() {
	config_load pptpd
	setup_config pptpd || return
	config_foreach setup_login login
	start_pptpd
}

stop() {
	service_stop $BIN
}
