#! /bin/sh
### BEGIN INIT INFO
# Provides:           snmptrapd
# Required-Start:     $network $remote_fs $syslog
# Required-Stop:      $network $remote_fs $syslog
# Default-Start:      2 3 4 5
# Default-Stop:       0 1 6
# Short-Description:  SNMP Trap daemon
# Description:        NET SNMP (Simple Network Management Protocol) trap daemon
### END INIT INFO
#
# Author:    Hideki Yamane <henrich@debian.org>
#            (based on Jochen Friedrich <jochen@scram.de>'s snmpd.init)
#
set -e

. /lib/lsb/init-functions

export PATH=/sbin:/usr/sbin:/bin:/usr/bin
test -x /usr/sbin/snmptrapd || exit 0

# Defaults
OLD_MIBS_DIR="/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
MIBS_DIR="/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf"
export MIBDIRS="$MIBS_DIR:$OLD_MIBS_DIR"

TRAPD_PID="/run/snmptrapd.pid"
TRAPDRUN=no
TRAPDOPTS="-Lsd -p $TRAPD_PID"

# Reads config file (will override defaults above)
[ -r /etc/default/snmptrapd ] && . /etc/default/snmptrapd

# Cd to / before starting any daemons.
cd /

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"
    fi
    ;;
  stop)
    log_daemon_msg "Stopping SNMP trap services:"
    start-stop-daemon --quiet --stop --oknodo --retry 3 --exec /usr/sbin/snmptrapd \
           && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
    log_progress_msg " snmptrapd"
    ;;
  restart)
    log_daemon_msg "Restarting SNMP trap services:"
    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
    ;;
  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"
    fi
    ;;
  status)
    status=0
    if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
      status_of_proc /usr/sbin/snmptrapd snmptrapd || status=$?
    fi
    exit $status
    ;;
  *)
    echo "Usage: /etc/init.d/snmptrapd {start|stop|restart|reload|force-reload|status}"
    exit 1
esac

exit 0
