#!/bin/sh
#
# chilli      CoovaChilli init
#
# chkconfig: 2345 65 35
# description: CoovaChilli

# Source function library.
. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/sbin/chilli ] || exit 0
[ -f /etc/chilli.conf ] || exit 0

. /etc/chilli/functions

check_required

RETVAL=0
prog="chilli"

case $1 in
    start)
        gprintf "Starting %s: " "$prog"
        /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 && gprintf "*/%s * * * * %s radconfig\n" "$HS_ADMINTERVAL" "$0"
            gprintf "*/10 * * * * %s checkrunning\n" "$0"
#           gprintf "*/2  * * * * %s arping\n" "$0"
        ) | crontab - 2>&-
	
	ifconfig $HS_LANIF 0.0.0.0
        daemon /usr/sbin/chilli
        RETVAL=$?

        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/chilli
        echo
	;;
    
    checkrunning)
	[ -e $LKFILE -a ! -e $PIDFILE ] && $0 start
	;;

    radconfig)
	[ -e $MAIN_CONF ] || writeconfig
	radiusconfig
	;;

    reload)
	killall -HUP chilli
	;;

    restart)
	$0 stop
	$0 start
	RETVAL=$?
	;;
    
    stop)
        gprintf "Shutting down %s: " "$prog"

	crontab -l 2>&- | grep -v $0 | crontab -

        [ -f /var/run/chilli.pid ] && { 
	    kill $(cat /var/run/chilli.pid)
	    RETVAL=$
	    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/chilli /var/run/chilli.pid
	}
	killproc chilli
        echo
	;;
    
    condrestart)
        if [ -f /var/lock/subsys/chilli ] ; then
	    $0 restart
            RETVAL=$?
        fi
        ;;
    
    status)
        status chilli
        RETVAL=$?
        ;;

    *)
        gprintf "Usage: %s {start|stop|restart|condrestart|status|reload|radconfig}\n" "$0"
        exit 1
esac

exit $?
