#!/bin/sh
#
# chilli CoovaChilli init
#
# chkconfig: 2345 65 35
# description: CoovaChilli
### BEGIN INIT INFO
# Provides:       chilli
# Required-Start: network 
# Should-Start: 
# Required-Stop:  network
# Should-Stop: 
# Default-Start:  2 3 5
# Default-Stop:
# Description:    CoovaChilli access controller
### END INIT INFO

[ -f /usr/local/sbin/chilli ] || exit 0

. /usr/local/etc/chilli/functions

MULTI=$(ls /usr/local/etc/chilli/*/chilli.conf 2>/dev/null)
[ -z "$DHCPIF" ] && [ -n "$MULTI" ] && {
    for c in $MULTI; 
    do
	echo "Found configuration $c"
	DHCPIF=$(basename $(echo $c|sed 's#/chilli.conf##'))
	export DHCPIF
	echo "Running DHCPIF=$DHCPIF $0 $*"
	sh $0 $*
    done
    exit
}

if [ -n "$DHCPIF" ]; then
    CONFIG=/usr/local/etc/chilli/$DHCPIF/chilli.conf
    pidfile=/usr/local/var/run/chilli.$DHCPIF.pid
else
    CONFIG=/usr/local/etc/chilli.conf
    pidfile=/usr/local/var/run/chilli.pid
fi

[ -f $CONFIG ] || {
    echo "$CONFIG Not found"
    exit 0
}

check_required

RETVAL=0
prog="chilli"

case $1 in
    start)
        echo -n "Starting $prog: "

        /sbin/insmod /lib/modules/2.6.15/net/tun.ko >/dev/null 2>&1
        echo 1 > /proc/sys/net/ipv4/ip_forward

	[ -e /dev/net/tun ] || {
	    (cd /dev; 
		mkdir net; 
		cd net; 
		mknod tun c 10 200)
	}

	writeconfig
  radiusconfig
	
	#ifconfig $HS_LANIF 0.0.0.0
	iptables -I FORWARD 1 -i $HS_LANIF -o $HS_WANIF -j DROP
	/usr/local/sbin/chilli -c $CONFIG --pidfile=$pidfile &
  ;;

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

    reload)
	killall -HUP chilli
	;;

    restart)
	$0 stop
	sleep 1
	$0 start
	RETVAL=$?
	;;
    
    stop)
	echo -n $"Shutting down $prog: "
	killall -9 chilli
	rm -rf /tmp/chilli.*
	rmmod tun
	;;
    
    *)
        echo "Usage: $0 {start|stop|restart|reload|radconfig}"
        exit 1
esac

exit $?
