#!/bin/sh

#bootscript for named

# Source function library.
. /usr/local/etc/rc.d/functions

pidfile=/var/run/named.pid
if [ ! -e $pidfile ]; then
	pidfile=/var/run/named/pid
fi


start() {
	echo -n "Starting Named: ";

	COUNT=`ps ax | grep /usr/sbin/named | grep -v grep | grep -c named`

	if [ "$COUNT" -gt 0 ]; then
		echo "named is already running.";
		exit 0;
	fi

        daemon /usr/sbin/named -u bind
        RETVAL=$?
        if [ "$RETVAL" = "0" ] && touch /var/spool/lock/named
	then
		echo -e "\t\t[ OK ]";
	else
		echo -e "\t\t[ FAILED ]";
	fi
}

stop() {
        echo -n "Stopping Named: "
	#killall named 2> /dev/null

	PIDS=`ps ax | grep /usr/sbin/named | grep -v grep | cut -d\  -f1`
	kill -9 $PIDS

        RETVAL=$?
        if [ "$RETVAL" = "0" ] && rm -f /var/spool/lock/named
	then
		echo -e "\t\t[ OK ]";
	else
		echo -e "\t\t[ FAILED ]";
	fi
	sleep 1;
	killall -9 named 2> /dev/null
}

restart() {
	echo -n "Restarting Named: "
	/usr/sbin/ndc restart > /dev/null
	RETVAL=$?
        if [ "$RETVAL" = "0" ];
        then
                echo -e "\t\t[ OK ]";
        else
                echo -e "\t\t[ FAILED ]";
        fi
}

reload() {
	echo -n "Reloading Named: "
	#/usr/sbin/ndc reload
	kill -HUP `cat $pidfile`
	RETVAL=$?
        if [ "$RETVAL" = "0" ];
        then
                echo -e "\t\t[ OK ]";
        else
                echo -e "\t\t[ FAILED ]";
        fi
}



case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        #restart
	stop
	start
        ;;
  reload)
	#reload
	stop
	start
	;;	
  status)
        status named
        ;;
  *)
        echo "Usage: named {start|stop|restart|reload|status}"
        exit 1
esac

exit $RETVAL

