Rev 40 | Go to most recent revision | Blame | Last modification | View Log
#!/bin/sh
#
# chilli CoovaChilli init
#
# chkconfig: 2345 65 35
# description: CoovaChilli
# Source function library.
daemon=
killproc=killall
[ -e /etc/rc.d/init.d/functions ] && {
. /etc/rc.d/init.d/functions
daemon=daemon
killproc=killproc
}
[ -e /etc/sysconfig/network ] && {
. /etc/sysconfig/network
[ ${NETWORKING} = "no" ] && exit 0
}
[ -f /usr/sbin/chilli ] || exit 0
. /etc/chilli/functions
MULTI=$(ls /etc/chilli/*/chilli.conf 2>/dev/null)
[ -z "$DHCPIF" ] && [ -n "$MULTI" ] && {
for c in $MULTI;
do
gprintf "Found configuration %s\n" "$c"
DHCPIF=$(basename $(echo $c|sed 's#/chilli.conf##'))
export DHCPIF
gprintf "Running DHCPIF=%s %s $*\n" "$DHCPIF" "$0"
sh $0 $*
done
exit
}
if [ -n "$DHCPIF" ]; then
CONFIG=/etc/chilli/$DHCPIF/chilli.conf
else
CONFIG=/etc/chilli.conf
fi
[ -f $CONFIG ] || {
gprintf "%s Not found\n" "$CONFIG"
exit 0
}
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
[ -e /dev/net/tun ] || {
(cd /dev;
mkdir net;
cd net;
mknod tun c 10 200)
}
writeconfig
radiusconfig
test ${HS_ADMINTERVAL:-0} -gt 0 && {
(crontab -l 2>&- | grep -v $0
gprintf "*/%s * * * * %s radconfig\n" "$HS_ADMINTERVAL" "$0"
) | crontab - 2>&-
}
ifconfig $HS_LANIF 0.0.0.0
$daemon /usr/sbin/chilli -c $CONFIG &
RETVAL=$?
echo
;;
radconfig)
[ -e $MAIN_CONF ] || writeconfig
radiusconfig
;;
reload)
killall -HUP chilli
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
status)
status chilli
RETVAL=$?
;;
stop)
gprintf "Shutting down %s: " "$prog"
crontab -l 2>&- | grep -v $0 | crontab -
[ -f /var/run/chilli.$HS_LANIF.pid ] && {
kill $(cat /var/run/chilli.$HS_LANIF.pid)
RETVAL=$?
[ $RETVAL = 0 ] && {
rm -f /var/run/chilli.$HS_LANIF.pid 2>/dev/null
}
}
#$killproc chilli
echo
;;
*)
gprintf "Usage: %s {start|stop|restart|reload|radconfig}\n" "$0"
exit 1
esac
exit $?