#!@l_prefix@/bin/openpkg rc
##
##  rc.snmp -- Run-Commands
##

%config
    snmp_enable="$openpkg_rc_def"
    snmp_daemons="snmpd snmptrapd"
    snmp_listen="127.0.0.1"
    snmp_listentrap="127.0.0.1"
    snmp_log_prolog="true"
    snmp_log_epilog="true"
    snmp_log_numfiles="10"
    snmp_log_minsize="1M"
    snmp_log_complevel="9"

%common
    snmp_pidfile_snmptrapd="@l_prefix@/var/snmp/snmptrapd.pid"
    snmp_pidfile_snmpd="@l_prefix@/var/snmp/snmpd.pid"
    snmp_signal () {
        [ -f $snmp_pidfile_snmptrapd ] \
            && kill -$1 `cat $snmp_pidfile_snmptrapd`
        local rc_snmptrapd=$?
        [ -f $snmp_pidfile_snmpd ] \
            && kill -$1 `cat $snmp_pidfile_snmpd`
        local rc_snmpd=$?
        [ $rc_snmptrapd -eq 0 -o $rc_snmpd -eq 0 ]
    }

%status -u @l_susr@ -o
    snmp_usable="no"
    snmp_active="no"
    rcService snmp enable yes && \
        snmp_usable="yes"
    rcService snmp enable yes && \
        snmp_signal 0 && snmp_active="yes"
    echo "snmp_enable=\"$snmp_enable\""
    echo "snmp_usable=\"$snmp_usable\""
    echo "snmp_active=\"$snmp_active\""

%start -u @l_susr@
    rcService snmp enable yes || exit 0
    rcService snmp active yes && exit 0
    for daemon in $snmp_daemons; do
        case "$daemon" in
            snmpd     ) @l_prefix@/sbin/snmpd     -Lsd $snmp_listen ;;
            snmptrapd ) @l_prefix@/sbin/snmptrapd -Lsd $snmp_listentrap ;;
        esac
    done

%stop -u @l_susr@
    rcService snmp enable yes || exit 0
    rcService snmp active no  && exit 0
    snmp_signal TERM

%restart -u @l_susr@
    rcService snmp enable yes || exit 0
    rcService snmp active no  && exit 0
    rc snmp stop
    sleep 2
    rc snmp start

%daily -u @l_susr@
    rcService snmp enable yes || exit 0
    shtool rotate -f \
        -n ${snmp_log_numfiles} -s ${snmp_log_minsize} -d \
        -z ${snmp_log_complevel} -o @l_rusr@ -g @l_rgrp@ -m 644 \
        -P "${snmp_log_prolog}" \
        -E "${snmp_log_epilog}" \
        @l_prefix@/var/snmp/snmp.log

