#!/bin/sh
#
# Copyright (C) 2001-2007 Francesco P. Lovergine <frankie@debian.org>
#

### BEGIN INIT INFO
# Provides:          yardradius
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Should-Start:      $local_fs $remote_fs
# Should-Stop:       $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Run yardradius daemon
# Description:       Start the RADIUS auth/acct services provided
#                    by yardradius daemon
### END INIT INFO

DAEMON=/usr/sbin/radiusd
NAME=radiusd
DESC=yardradius

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

set -e

case "$1" in
  start)
	if [ -f /etc/yardradius/users ]; then
		if [ ! -f /etc/yardradius/users.db ]; then
			/usr/sbin/builddbm 
		fi
		log_daemon_msg "Starting $DESC" "$NAME"
		start-stop-daemon --start --quiet --oknodo \
			--exec $DAEMON -- -l /var/log/yardradius.log -b -c
		log_end_msg $?
	else
		echo "$DESC not configured"
		exit 1;
	fi
	;;
  stop)
	log_daemon_msg "Stopping $DESC" "$NAME"
	pkill -f -u root $DAEMON || true;
	log_end_msg $?
	;;
  restart|force-reload)
	if [ -f /etc/yardradius/users ]; then
		log_daemon_msg "Restarting $DESC" "$NAME"
		pkill -f -u root $DAEMON || true;
		sleep 1
		start-stop-daemon --start --quiet --oknodo \
			--exec $DAEMON -- -l /var/log/yardradius.log -b -c
		log_end_msg $?
	else
		echo "$DESC not configured"
		exit 1;
	fi
	;;
  status)
  	if [ $(pgrep radiusd|wc -l) -ne 0 ]; then
		echo "$DESC is running"
	else
		echo "$DESC is not running"
	fi
  	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0

