#!/bin/sh
#
# Startup script for the DNS caching server
#
# chkconfig:	345 14 89
# description:	This script starts your DNS caching server
# processname:	dnsmasq
# pidfile:	/var/run/dnsmasq.pid

# Set some frequently user variables
SERVICE=dnsmasq
LOCKFILE=/var/lock/subsys/$SERVICE
MSG=$SERVICE
CMD=$SERVICE

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

# Get network config
. /etc/sysconfig/network

# Check that networking is up
if is_yes "${NETWORKING}"; then
	if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
		msg_network_down $MSG
		exit 1
	fi
else
	exit 0
fi

MAILHOSTNAME=""
RESOLV_CONF=""
DHCP_LEASE="/var/lib/dhcp/dhcpd.leases"
DOMAIN_SUFFIX=`dnsdomainname`
OPTIONS=""

# Get service config
[ -f "/etc/sysconfig/$SERVICE" ] && . "/etc/sysconfig/$SERVICE"

# Set proper options for dnsmasq
[ -n "$MAILHOSTNAME" ] &&  OPTIONS="$OPTIONS -m $MAILHOSTNAME"
[ -n "$RESOLV_CONF" ] && OPTIONS="$OPTIONS -r $RESOLV_CONF"
[ -n "$DHCP_LEASE" ] && OPTIONS="$OPTIONS -l $DHCP_LEASE"
[ -n "$DOMAIN_SUFFIX" ] && OPTIONS="$OPTIONS -s $DOMAIN_SUFFIX"
[ -n "$INTERFACE" ] && OPTIONS="$OPTIONS -i $INTERFACE"

RETVAL=0
# See how we were called.
case "$1" in
  start)
  	if [ ! -f "$LOCKFILE" ]; then
		msg_starting $MSG
		daemon $CMD $OPTIONS
		RETVAL=$?
		[ $RETVAL -eq 0 ] && touch $LOCKFILE
	else
		msg_already_running $MSG
	fi
	;;
  stop)
  	if [ -f "$LOCKFILE" ]; then
		msg_stopping $MSG
		killproc $CMD
		rm -f $LOCKFILE  >/dev/null 2>&1
	else
		msg_not_running $MSG
	fi
	;;
  status)
	status $CMD
	;;
  restart|force-reload)
	$0 stop
	$0 start
	exit $?
	;;
  *)
	msg_usage "$0 {start|stop|restart|force-reload|status}"
	exit 3
esac

exit $RETVAL
