#! /bin/sh
### BEGIN INIT INFO
# Provides:          avahi-dnsconfd
# Required-Start:    $remote_fs avahi
# Required-Stop:     $remote_fs avahi
# Default-Start:     3 5
# Default-Stop:
# Short-Description: ZeroConf daemon
# Description:       Avahi, a ZeroConf daemon for mDNS and service registration
### END INIT INFO

AVAHI_BIN=@sbindir@/avahi-dnsconfd
test -x $AVAHI_BIN || exit 5

. /etc/rc.status
rc_reset

case "$1" in
	start)
		echo -n "Starting Avahi DNS Configuration daemon "
		$AVAHI_BIN -D
		rc_status -v
		;;
	stop)
		echo -n "Shutting down Avahi DNS Configuration daemon "
		$AVAHI_BIN -k 2>/dev/null || /bin/true
		rc_status -v
		;;
	restart)
		$0 stop
		$0 start
		rc_status
		;;
	try-restart|condrestart)
		if test "$1" = "condrestart"; then
			echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
		fi
		$0 status
		if test $? = 0; then
			$0 restart
		else
			rc_reset
		fi
		rc_status
		;;
	force-reload|reload)
		echo -n "Reloading Avahi DNS Configuration daemon "
		$AVAHI_BIN -r
		rc_status -v
		;;
	status)
		echo -n "Checking for Avahi DNS Configuration daemon: "
		$AVAHI_BIN -c || _rc_status=3
		rc_status -v
		;;
	*)
		echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
		exit 1
		;;
esac
