#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/net-dns/dnsmasq/files/dnsmasq-init,v 1.13 2008/01/29 15:06:30 flameeyes Exp $

opts="reload"

depend() {
	provide dns
	need localmount net
	after bootmisc
}

start() {
	ebegin "Starting ${SVCNAME}"
	start-stop-daemon --start --exec /usr/sbin/dnsmasq \
	    --pidfile /var/run/dnsmasq.pid \
	    -- -x /var/run/dnsmasq.pid ${DNSMASQ_OPTS}
	eend $?
}

stop() {
	ebegin "Stopping ${SVCNAME}"
	start-stop-daemon --stop --exec /usr/sbin/dnsmasq \
	    --pidfile /var/run/dnsmasq.pid
	eend $?
}

reload() {
	ebegin "Reloading ${SVCNAME}"
	if ! service_started "${SVCNAME}" ; then
	    eend 1 "${SVCNAME} is not started"
	    return 1
	fi
	start-stop-daemon --stop --oknodo --signal HUP \
	    --exec /usr/sbin/dnsmasq --pidfile /var/run/dnsmasq.pid
	eend $?
}
