#!/bin/sh export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin export LD_LIBRARY_PATH=/mod/lib DAEMON=pptpd PPPD=pppd case "$1" in ""|load|start|restart) if [ ! -r "/mod/etc/conf/$DAEMON.cfg" ]; then echo "Error[$DAEMON]: not configured" 1>&2 exit 1 fi . /mod/etc/conf/$DAEMON.cfg ;; esac start() { echo -n 'Starting pptpd ...' set -o noglob rm -f /mod/etc/ppp/ip-up rm -f /mod/etc/ppp/ip-down [ -x "/tmp/flash/ppp/pppd_ip-up" ] && /tmp/flash/ppp/pppd_ip-up > /mod/etc/ppp/ip-up [ ! -e "/mod/etc/ppp/ip-up" ] && /etc/default.${PPPD}/pppd_ip-up > /mod/etc/ppp/ip-up [ -x "/tmp/flash/ppp/pppd_ip-down" ] && /tmp/flash/ppp/pppd_ip-down > /mod/etc/ppp/ip-down [ ! -e "/mod/etc/ppp/ip-down" ] && /etc/default.${PPPD}/pppd_ip-down > /mod/etc/ppp/ip-down chmod 755 /mod/etc/ppp/ip-up chmod 755 /mod/etc/ppp/ip-down modprobe arc4 modprobe sha1 modprobe ppp_generic modprobe ppp_async modprobe ppp_deflate modprobe ppp_mppe_mppc $DAEMON -c /etc/ppp/$DAEMON.conf exitval=$? if [ "$exitval" -eq 0 ]; then echo 'done.' else echo 'failed.' exit $exitval fi } stop() { echo -n 'Stopping pptpd ...' kill $(ps|grep pptpd|grep -v grep|grep -v "rc.pp"|grep -v "pppd"|sed 's/^ //g'|cut -f1 -d" ") exitval=$? if [ "$exitval" -eq 0 ]; then echo 'done.' else echo 'failed.' exit $exitval fi } case "$1" in ""|load) [ ! -d "/tmp/flash/ppp" ] && mkdir -p /tmp/flash/ppp [ ! -d "/mod/etc/ppp" ] && mkdir -p /mod/etc/ppp [ ! -e "/tmp/flash/ppp/options.pptpd" ] && /etc/default.${DAEMON}/pptpd_options > /tmp/flash/ppp/options.pptpd [ ! -e "/tmp/flash/ppp/pptpd.conf" ] && /etc/default.${DAEMON}/pptpd_conf > /tmp/flash/ppp/pptpd.conf [ -e "/tmp/flash/ppp/options.pptpd" ] && ln -s /tmp/flash/ppp/options.pptpd /mod/etc/ppp/options.pptpd [ -e "/tmp/flash/ppp/pptpd.conf" ] && ln -s /tmp/flash/ppp/pptpd.conf /mod/etc/ppp/pptpd.conf modreg cgi 'pptpd' 'PPTPD' deffile='/mod/etc/default.pptpd/pptpd_options.def' [ -r "/tmp/flash/pptpd_options.def" ] && deffile='/tmp/flash/pptpd_options.def' modreg file 'pptpd_options' 'PPTPD: options.pptpd' 0 "$deffile" deffile='/mod/etc/default.pptpd/pptpd_conf.def' [ -r "/tmp/flash/pptpd_conf.def" ] && deffile='/tmp/flash/pptpd_conf.def' modreg file 'pptpd_conf' 'PPTPD: pptpd.conf' 0 "$deffile" if [ "$PPTPD_ENABLED" != "yes" ]; then echo "$DAEMON is disabled" 1>&2 exit 1; fi start ;; unload) stop modunreg cgi 'pptpd' modunreg file 'pptpd_options' modunreg file 'pptpd_conf' ;; start) start ;; stop) stop ;; restart) stop sleep 1 start ;; status) if [ -z "$(pidof "$DAEMON")" ]; then echo 'stopped' else echo 'running' fi ;; *) echo "Usage: $0 [load|unload|start|stop|restart|status]" 1>&2 exit 1 ;; esac exit 0