#!/bin/sh /etc/rc.common
START=59

EXTRA_COMMANDS="status checkrunning radconfig condrestart"
EXTRA_HELP="	status	Show current status
    checkrunning If services is not running start it"

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/chilli
NAME=chilli
DESC=chilli
CONFFILE=/etc/chilli.conf
OPTS="--pidfile /var/run/$NAME.pid"

. /etc/chilli/functions
check_required

start() {
	echo -n "Starting $DESC: "
   /sbin/modprobe tun >/dev/null 2>&1
   echo 1 > /proc/sys/net/ipv4/ip_forward

   writeconfig
   radiusconfig

   (crontab -l 2>&- | grep -v $0
      test ${HS_ADMINTERVAL:-0} -gt 0 && echo "*/$HS_ADMINTERVAL * * * * $0 radconfig"
      echo "*/10 * * * * $0 checkrunning"
      #echo "*/2  * * * * $0 arping"
   ) | crontab - 2>&-
  $DAEMON -- $OPTS
  RETVAL=$?
	echo "$NAME."
}

status () {
		pid=$(cat "/var/run/$NAME.pid" 2>/dev/null)
		[ -n "$pid" -a -d "/proc/$pid" ] && {
      echo "$DESC running"
      exit 0
		}
    echo "$DESC stopped"
}

checkrunning () {
    local pid
		pid=$(cat "/var/run/$NAME.pid" 2>/dev/null)
		[ -n "$pid" -a -d "/proc/$pid" ] && {
			exit 0
		}
    $0 start
}

radconfig () {
      [ -e $MAIN_CONF ] || writeconfig
      radiusconfig
}

stop () {
    local pid
		pid=$(cat "/var/run/$NAME.pid" 2>/dev/null)
		[ -n "$pid" -a -d "/proc/$pid" ] && {
      echo -n "Stopping $DESC: "
      crontab -l 2>&- | grep -v $0 | crontab -
      kill -TERM "$pid"
      [ "$?" -eq 0 ] && sleep 1
      [ ! -d "/proc/$pid" ] && echo "OK" || {
  			echo "Failed!"
        echo -n "Killing chilli..."
        kill -KILL "$pid"
        [ "$?" -eq 0 ] && echo "OK" || echo "Failed!"
      }
      exit 0
		}
		echo "$DESC was not running"
}

condrestart() {
    local pid
		pid=$(cat "/var/run/$NAME.pid" 2>/dev/null)
		[ -n "$pid" -a -d "/proc/$pid" ] && {
      echo -n "Restarting $DESC: "
      $0 restart
      RETVAL=$?
		}
}
