64 lines
1.7 KiB
Bash
64 lines
1.7 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=60
|
|
|
|
USE_PROCD=1
|
|
|
|
PPPOE_SERVER_EXEC=/usr/sbin/pppoe-server
|
|
SERVICE_PID_FILE=/var/run/netkeeper-interception.pid
|
|
|
|
start_interception() {
|
|
config_get_bool enabled $1 enabled 0
|
|
config_get iface $1 iface
|
|
if [ $enabled -ne 0 ] ;then
|
|
#enabled
|
|
if [ -f /etc/netkeeper-interception/AuthReq ]; then
|
|
logger "Restore Netkeeper AuthReq"
|
|
cp -f /etc/netkeeper-interception/AuthReq /tmp/Last_AuthReq
|
|
fi
|
|
procd_open_instance
|
|
procd_set_param command $PPPOE_SERVER_EXEC -k -I $iface -O /etc/netkeeper-interception/pppoe-server-options -X $SERVICE_PID_FILE
|
|
# procd_set_param respawn
|
|
procd_set_param file /etc/netkeeper-interception/pppoe-server-options
|
|
procd_set_param pidfile $SERVICE_PID_FILE
|
|
procd_close_instance
|
|
else
|
|
#disabled
|
|
if [ -f /tmp/Last_AuthReq ]; then
|
|
logger "Save Netkeeper Last_AuthReq"
|
|
cp -f /tmp/Last_AuthReq /etc/netkeeper-interception/AuthReq
|
|
fi
|
|
fi
|
|
if [ ! -f /tmp/Last_AuthReq ]; then
|
|
logger "/tmp/Last_AuthReq Not Found,Try to restore Netkeeper AuthReq"
|
|
if [ -f /etc/netkeeper-interception/AuthReq ]; then
|
|
cp -f /etc/netkeeper-interception/AuthReq /tmp/Last_AuthReq
|
|
else
|
|
touch -f /tmp/Last_AuthReq
|
|
fi
|
|
fi
|
|
}
|
|
|
|
start_service() {
|
|
if [ -f $SERVICE_PID_FILE ]; then
|
|
if [ $(pgrep pppoe-server|grep $(cat /var/run/netkeeper-interception.pid) -q && echo 0) -eq 0 ]; then
|
|
kill $(cat /var/run/netkeeper-interception.pid)
|
|
rm -f $SERVICE_PID_FILE
|
|
else
|
|
rm -f $SERVICE_PID_FILE
|
|
fi
|
|
fi
|
|
config_load netkeeper-interception
|
|
config_foreach start_interception netkeeper-interception
|
|
}
|
|
|
|
stop_service() {
|
|
service_stop "$PPPOE_SERVER_EXEC"
|
|
rm -f $SERVICE_PID_FILE
|
|
}
|
|
|
|
service_triggers()
|
|
{
|
|
procd_add_reload_trigger "netkeeper-interception"
|
|
}
|