From d24fb58c27a20cef6ae74534796b917d1027a297 Mon Sep 17 00:00:00 2001
From: Guillem Jover <guillem@debian.org>
Date: Sat, 30 Apr 2016 16:06:38 +0200
Subject: [PATCH] net-snmp: Fix LSB init output

---
 debian/snmpd.init     | 51 +++++++++++++++++++++++++++----------------------
 debian/snmptrapd.init | 53 ++++++++++++++++++++++++++++++---------------------
 2 files changed, 59 insertions(+), 45 deletions(-)

diff --git a/debian/snmpd.init b/debian/snmpd.init
index 3e6dc03..298e0d5 100644
--- a/debian/snmpd.init
+++ b/debian/snmpd.init
@@ -34,9 +34,14 @@ SNMPDOPTS="-Lsd -Lf /dev/null -p $SNMP_PID"
 # Cd to / before starting any daemons.
 cd /
 
+set +e
+
 case "$1" in
   start)
-    log_daemon_msg "Starting SNMP services:"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmpd.conf ]; then
+	exit 0
+    fi
+
     # remove old symlink with previous version
     if [ -L /var/run/agentx ]; then
 	    rm -f /var/run/agentx
@@ -44,39 +49,39 @@ case "$1" in
     if [ ! -d /var/run/agentx ]; then
 	    mkdir -p /var/run/agentx
     fi
-    if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
-	start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmpd \
-	    -- $SNMPDOPTS
-	log_progress_msg " snmpd"
-    fi
+    log_daemon_msg "Starting SNMP services" "snmpd"
+    start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmpd \
+        -- $SNMPDOPTS
+    log_end_msg $?
     ;;
   stop)
-    log_daemon_msg "Stopping SNMP services:"
+    log_daemon_msg "Stopping SNMP services" "snmpd"
     start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmpd && [ ! -f $SNMP_PID ] || rm $SNMP_PID
-    log_progress_msg " snmpd"
+    log_end_msg $?
     ;;
   restart)
-    log_daemon_msg "Restarting SNMP services:"
-    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmpd  && [ ! -f $SNMP_PID ] || rm $SNMP_PID
-    if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
-	start-stop-daemon --quiet --start --exec /usr/sbin/snmpd -- $SNMPDOPTS
-	log_progress_msg " snmpd"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmpd.conf ]; then
+	exit 0
     fi
+
+    log_daemon_msg "Restarting SNMP services" "snmpd"
+    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmpd  && [ ! -f $SNMP_PID ] || rm $SNMP_PID
+    start-stop-daemon --quiet --start --exec /usr/sbin/snmpd -- $SNMPDOPTS
+    log_end_msg $?
     ;;
   reload|force-reload)
-    log_daemon_msg "Reloading SNMP services:"
-    if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
-        start-stop-daemon --quiet --stop --signal 1 \
-	    --pidfile "$SNMP_PID" --exec /usr/sbin/snmpd
-	log_progress_msg " snmpd"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmpd.conf ]; then
+	exit 0
     fi
+
+    log_daemon_msg "Reloading SNMP services" "snmpd"
+    start-stop-daemon --quiet --stop --signal 1 \
+        --pidfile "$SNMP_PID" --exec /usr/sbin/snmpd
+    log_end_msg $?
     ;;
   status)
-    status=0
-    if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
-    	status_of_proc /usr/sbin/snmpd snmpd || status=$?
-    fi
-    exit $status
+    status_of_proc /usr/sbin/snmpd snmpd
+    exit $?
     ;;
   *)
     echo "Usage: /etc/init.d/snmpd {start|stop|restart|reload|force-reload|status}"
diff --git a/debian/snmptrapd.init b/debian/snmptrapd.init
index 48e26ac..733484f 100644
--- a/debian/snmptrapd.init
+++ b/debian/snmptrapd.init
@@ -34,44 +34,53 @@ TRAPDOPTS="-Lsd -p $TRAPD_PID"
 # Cd to / before starting any daemons.
 cd /
 
+set +e
+
 case "$1" in
   start)
-    log_daemon_msg "Starting SNMP trap services:"
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-	start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmptrapd \
-	    -- $TRAPDOPTS
-	log_progress_msg " snmptrapd"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmptrapd.conf ]; then
+	exit 0
     fi
+
+    log_daemon_msg "Starting SNMP trap services" "snmptrapd"
+    start-stop-daemon --quiet --start --oknodo --exec /usr/sbin/snmptrapd \
+        -- $TRAPDOPTS
+    log_end_msg $?
     ;;
   stop)
-    log_daemon_msg "Stopping SNMP trap services:"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmptrapd.conf ]; then
+	exit 0
+    fi
+
+    log_daemon_msg "Stopping SNMP trap services" "snmptrapd"
     start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmptrapd \
            && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
-    log_progress_msg " snmptrapd"
+    log_end_msg $?
     ;;
   restart)
-    log_daemon_msg "Restarting SNMP trap services:"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmptrapd.conf ]; then
+	exit 0
+    fi
+
+    log_daemon_msg "Restarting SNMP trap services" "snmptrapd"
     start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmptrapd \
            && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-        start-stop-daemon --quiet --start --retry 3 --exec /usr/sbin/snmptrapd -- $TRAPDOPTS
-	log_progress_msg " snmptrapd"
-    fi
+    start-stop-daemon --quiet --start --retry 3 --exec /usr/sbin/snmptrapd -- $TRAPDOPTS
+    log_end_msg $?
     ;;
   reload|force-reload)
-    log_daemon_msg "Reloading SNMP trap services:"
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-        start-stop-daemon --quiet --stop --signal 1 \
-           --pidfile "$TRAPD_PID" --exec /usr/sbin/snmptrapd
-        log_progress_msg " snmptrapd"
+    if [ "$SNMPDRUN" != "yes" ] || ! [ -f /etc/snmp/snmptrapd.conf ]; then
+	exit 0
     fi
+
+    log_daemon_msg "Reloading SNMP trap services" "snmptrapd"
+    start-stop-daemon --quiet --stop --signal 1 \
+       --pidfile "$TRAPD_PID" --exec /usr/sbin/snmptrapd
+    log_end_msg $?
     ;;
   status)
-    status=0
-    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
-      status_of_proc /usr/sbin/snmptrapd snmptrapd || status=$?
-    fi
-    exit $status
+    status_of_proc /usr/sbin/snmptrapd snmptrapd
+    exit $?
     ;;
   *)
     echo "Usage: /etc/init.d/snmptrapd {start|stop|restart|reload|force-reload|status}"
-- 
2.8.1

