]> git.meshlink.io Git - catta/blobdiff - initscript/debian/avahi-daemon.in
fix avahi_netlink_new to allow multiple netlinks per process
[catta] / initscript / debian / avahi-daemon.in
index 66aaee7fb141fccf1534afb733883064c85c1394..97fa1579398a8a285340412cbfefbcdce81f9537 100755 (executable)
@@ -1,7 +1,5 @@
 #!/bin/sh
 
-# $Id$
-
 # This file is part of avahi.
 #
 # avahi is free software; you can redistribute it and/or modify it
@@ -75,6 +73,16 @@ else
        return $1
     }
     
+    log_warning_msg () {
+       if log_use_fancy_output; then
+           YELLOW=`$TPUT setaf 3`
+           NORMAL=`$TPUT op`
+           echo "$YELLOW*$NORMAL $@"
+       else
+           echo "$@"
+       fi
+    }
+
 fi
 
 #set -e
@@ -83,14 +91,35 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin
 DESC="Avahi mDNS/DNS-SD Daemon"
 NAME="avahi-daemon"
 DAEMON="@sbindir@/$NAME"
+SCRIPTNAME=/etc/init.d/$NAME
 
 # Gracefully exit if the package has been removed.
 test -x $DAEMON || exit 0
 
+# don't start if /etc/default/avahi-daemon says so.
+AVAHI_DAEMON_START=1
+test -f /etc/default/avahi-daemon && . /etc/default/avahi-daemon
+
+if [ "$AVAHI_DAEMON_START" != "1" -a "$1" != "stop" ]; then
+    log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME"
+    exit 0
+fi
+
 #
 #       Function that starts the daemon/service.
 #
 d_start() {
+    modprobe capability >/dev/null 2>&1 || true
+
+    $DAEMON -c && return 0
+
+    if [ -s /etc/localtime ]; then
+       if [ ! -d /etc/avahi/etc ]; then
+           mkdir -p @sysconfdir@/avahi/etc >/dev/null 2>&1
+       fi
+       cp -fp /etc/localtime @sysconfdir@/avahi/etc >/dev/null 2>&1
+    fi;
+    
     $DAEMON -D
 }
 
@@ -98,16 +127,22 @@ d_start() {
 #       Function that stops the daemon/service.
 #
 d_stop() {
-    $DAEMON -k || /bin/true
+    $DAEMON -c && $DAEMON -k
 }
 
 #
 #       Function that reload the config file for the daemon/service.
 #
 d_reload() {
-    $DAEMON -r
+    $DAEMON -c && $DAEMON -r
 }
 
+#
+#       Function that check the status of the daemon/service.
+#
+d_status() {
+    $DAEMON -c && echo "$DESC is running" || echo "$DESC is not running"
+}
 
 case "$1" in
     start)
@@ -127,12 +162,14 @@ case "$1" in
         ;;
     restart|force-reload)
         log_begin_msg "Restarting $DESC: $NAME"
-        d_stop
-        sleep 1
+        $DAEMON -c && d_stop
         d_start
         log_end_msg $?
         ;;
-  *)
+    status)
+        d_status
+       ;;
+    *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload}" >&2
         exit 1
         ;;