#!/bin/sh
### BEGIN INIT INFO
# Provides:          avahi avahi-daemon
# Required-Start:    $remote_fs dbus
# Required-Stop:     $remote_fs dbus
# Should-Start:	     $syslog
# Should-Stop:       $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Avahi mDNS/DNS-SD Daemon
# Description:       Zeroconf daemon for configuring your network 
#                    automatically
### END INIT INFO

setvar PATH = "/sbin:/bin:/usr/sbin:/usr/bin"
setvar DESC = ""Avahi mDNS/DNS-SD Daemon""
setvar NAME = ""avahi-daemon""
setvar DAEMON = ""/usr/sbin/$NAME""
setvar SCRIPTNAME = "/etc/init.d/$NAME"

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

source /lib/lsb/init-functions

# Include avahi-daemon defaults if available.
test -f /etc/default/avahi-daemon && source /etc/default/avahi-daemon

setvar DISABLE_TAG = ""/var/run/avahi-daemon/disabled-for-unicast-local""

#
#       Function that starts the daemon/service.
#
proc d_start {
    $DAEMON -c && return 0

    if test -e $DISABLE_TAG -a $AVAHI_DAEMON_DETECT_LOCAL != "0" {
        # Disabled because of the existance of an unicast .local domain
        log_warning_msg "avahi-daemon disabled because there is a unicast .local domain"
        exit 0;
    };

    $DAEMON -D
}

#
#       Function that stops the daemon/service.
#
proc d_stop {
    if $DAEMON -c  {
       $DAEMON -k
    }
}

#
#       Function that reload the config file for the daemon/service.
#
proc d_reload {
    $DAEMON -c && $DAEMON -r
}

#
#       Function that check the status of the daemon/service.
#
proc d_status {
    $DAEMON -c && do { echo "$DESC is running"; exit 0; } || do { echo "$DESC is not running"; exit 3; }
}

case (1) {
    start {
        log_daemon_msg "Starting $DESC" $NAME
        d_start
        log_end_msg $?
        }
    stop {
        log_daemon_msg "Stopping $DESC" $NAME
        d_stop
        log_end_msg $?
        }
    reload|force-reload {
        log_daemon_msg "Reloading services for $DESC" $NAME
        d_reload
        log_end_msg $?
        }
    restart {
        log_daemon_msg "Restarting $DESC" $NAME
        d_stop
        if test "$?" -eq 0 {
                d_start
                log_end_msg $?
        } else {
                log_end_msg 1
        }
        }
    status {
        d_status
        }
    * {
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload|status}" >&2
        exit 3
        }
}

exit 0