#!/bin/sh
#
# named		This shell script takes care of starting and stopping
#		named (BIND DNS server).
#
# chkconfig:	345 14 89
#
# description:	named (BIND) is a Domain Name Server (DNS) \
#		that is used to resolve host names to IP addresses.

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

# Source networking configuration
. /etc/sysconfig/network

# Try get config..
[ -f /etc/sysconfig/named ] && . /etc/sysconfig/named
	
# Check that networking is up.
if is_no "${NETWORKING}"; then
        msg_network_down "Named"
	exit 1
fi
			
# Sanity check
[ -e /etc/named.conf ] || exit 0

# See how we were called.
case "$1" in
  start)
	# Check if the service is already running?
	if [ ! -f /var/lock/subsys/named ]; then
		msg_starting "Named"
		touch /var/lib/named/named.log && \
			chown named.named /var/lib/named/named.log
	 	daemon named -u named -t /var/lib/named \
			-c /etc/named.conf -n ${NUM_CPUS:-1} </dev/null
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
	else
		msg_already_running "Named"
		exit 1
	fi
        ;;
  stop)
        if [ -f /var/lock/subsys/named ]; then
        	msg_stopping "Named"
        	killproc named
        	rm -f /var/lock/subsys/named >/dev/null 2>&1
        else
	        msg_not_running "Named"
                exit 1
        fi
	;;
  status)
	status named
	if [ -f /etc/rndc.conf ] ; then
		/usr/sbin/rndc status
		RETVAL=$?
	fi
	;;
  reload)
        if [ -f /var/lock/subsys/named ]; then
		if [ -f /etc/rndc.conf ] ; then
			run_cmd "Reloading named" /usr/sbin/rndc reload
		else
			msg_reloading "Named"
			killproc named -HUP
		fi
	else
	        msg_not_running "Named"
	        exit 1
	fi
																							
	;;
  restart)
	$0 stop
	$0 start
	;;
  *)
        msg_usage "$0 {start|stop|status|reload|restart}"
        exit 1
esac

exit $RETVAL
