#!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org 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 CHAP_SECRETS=/var/etc/chap-secrets setup_login() { local section="$1" config_get username "$section" username config_get password "$section" password [ -n "$username" ] || return 0 [ -n "$password" ] || return 0 echo "$username pptp-server $password *" >> $CHAP_SECRETS } setup_config() { local section="$1" config_get enabled "$section" enabled [ "$enabled" -eq 0 ] && return 1 mkdir -p /var/etc cp /etc/pptpd.conf $CONFIG config_get localip "$section" localip config_get remoteip "$section" remoteip [ -n "$localip" ] && echo "localip $localip" >> $CONFIG [ -n "$remoteip" ] && echo "remoteip $remoteip" >> $CONFIG 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 }