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

%config
    mimedefang_enable="$openpkg_rc_def"
    mimedefang_flags="-X"
    mimedefang_filter="@l_prefix@/etc/mimedefang/mimedefang-filter"
    mimedefang_mx_socket="@l_prefix@/var/mimedefang/mimedefang-multiplexor.sock"
    mimedefang_socket="@l_prefix@/var/milter/socket/mimedefang"
    mimedefang_mx_embed_perl="yes"
    mimedefang_max_requests="200"
    mimedefang_mx_min="2"
    mimedefang_mx_busy="600"
    mimedefang_syslog_stats="yes"
    mimedefang_syslog_facility="mail"
    #   NOTICE: mimedefang is multi-threaded and therefore cannot use
    #   OSSP fsl -- you must use syslog. Therefore the rotate section
    #   below will not work unless you define this variable:
    mimedefang_log_file=""
    mimedefang_log_prolog="true"
    mimedefang_log_epilog="true"
    mimedefang_log_numfiles="10"
    mimedefang_log_minsize="1M"

%common
    mimedefang_pidfile="@l_prefix@/var/mimedefang/mimedefang.pid"
    mimedefang_mx_pidfile="@l_prefix@/var/mimedefang/mimedefang-multiplexor.pid"
    mimedefang_signal1 () {
        [ -f $2 ] && kill -$1 `head -1 $2`
    }
    mimedefang_signal () {
        local rc
        mimedefang_signal1 $1 $mimedefang_pidfile
        rc=$?
        mimedefang_signal1 $1 $mimedefang_mx_pidfile && [ $rc -eq 0 ]
    }

%status -u @l_rusr@ -o
    mimedefang_usable="unknown"
    mimedefang_active="no"
    rcService mimedefang enable yes && \
        mimedefang_signal 0 && mimedefang_active="yes"
    echo "mimedefang_enable=\"$mimedefang_enable\""
    echo "mimedefang_usable=\"$mimedefang_usable\""
    echo "mimedefang_active=\"$mimedefang_active\""

%start -u @l_rusr@
    rcService mimedefang enable yes || exit 0
    rcService mimedefang active yes && exit 0
    [ -f $mimedefang_filter ] || exit 0
    cmd="@l_prefix@/bin/mimedefang-multiplexor"
    cmd="$cmd -p $mimedefang_mx_pidfile"
    if [ ".$mimedefang_mx_embed_perl" = .yes ] ; then
        cmd="$cmd -E"
    fi
    if [ ".$mimedefang_syslog_stats" = .yes ] ; then
        cmd="$cmd -l -S $mimedefang_syslog_facility"
    fi
    cmd="$cmd -F $mimedefang_filter"
    cmd="$cmd -m $mimedefang_mx_min"
    cmd="$cmd -x $mimedefang_max_requests"
    cmd="$cmd -s $mimedefang_mx_socket"
    eval $cmd
    @l_prefix@/bin/mimedefang \
        -P $mimedefang_pidfile \
        -m $mimedefang_mx_socket \
        -p $mimedefang_socket \
        $mimedefang_flags

%stop -u @l_rusr@
    rcService mimedefang enable yes || exit 0
    rcService mimedefang active no && exit 0
    mimedefang_signal TERM
    rm -f $mimedefang_pidfile    2>/dev/null || true
    rm -f $mimedefang_mx_pidfile 2>/dev/null || true

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

%daily -u @l_rusr@
    rcService mimedefang enable yes || exit 0
    [ ".$mimedefang_log_file" = . ] && exit 0
    shtool rotate -f \
        -n ${mimedefang_log_numfiles} -s ${mimedefang_log_minsize} -d \
        -z ${mimedefang_log_complevel} -o @l_rusr@ -g @l_rusr@ -m 644 \
        -P "${mimedefang_log_prolog}" \
        -E "${mimedefang_log_epilog}; rc mimedefang restart" \
        $mimedefang_log_file

