All pastes #210472 Raw Edit

Miscellany

public text v1 · immutable
#210472 ·published 2006-10-19 19:50 UTC
rendered paste body
#!/bin/sh
#
# $NetBSD: qmailsmtpd.sh,v 1.7 2005/07/19 21:06:39 schmonz Exp $
#
# qmail-run-20050415 script to control qmail-smtpd (SMTP service).
#

# PROVIDE: qmailsmtpd mail
# REQUIRE: qmailsend

name="qmailsmtpd"

# User-settable rc.conf variables and their default values:
: ${qmailsmtpd_postenv:="QMAILQUEUE=/usr/pkg/bin/qmail-queue"}
: ${qmailsmtpd_tcpflags:="-vRl0"}
: ${qmailsmtpd_tcphost:="0"}
: ${qmailsmtpd_tcpport:="25"}
: ${qmailsmtpd_datalimit:="2000000"}
: ${qmailsmtpd_pretcpserver:=""}
: ${qmailsmtpd_presmtpd:=""}
: ${qmailsmtpd_postsmtpd:=""}
: ${qmailsmtpd_log:="YES"}
: ${qmailsmtpd_logcmd:="logger -t nb${name} -p mail.info"}
: ${qmailsmtpd_nologcmd:="/usr/pkg/bin/multilog -*"}

if [ -f /etc/rc.subr ]; then
        . /etc/rc.subr
fi

rcvar=${name}
required_files="/usr/pkg/etc/qmail/control/concurrencyincoming"
required_files="${required_files} /usr/pkg/etc/qmail/tcp.smtp.cdb"
required_files="${required_files} /usr/pkg/etc/qmail/control/rcpthosts"
command="/usr/pkg/bin/tcpserver"
procname=${name}
start_precmd="qmailsmtpd_precmd"
extra_commands="stat pause cont cdb"
stat_cmd="qmailsmtpd_stat"
pause_cmd="qmailsmtpd_pause"
cont_cmd="qmailsmtpd_cont"
cdb_cmd="qmailsmtpd_cdb"

qmailsmtpd_precmd()
{
        # tcpserver(1) is akin to inetd(8), but runs one service per process.
        # We want to signal only the tcpserver process responsible for SMTP
        # service. Use argv0(1) to set procname to "qmailsmtpd".
        if [ -f /etc/rc.subr ]; then
                checkyesno qmailsmtpd_log || qmailsmtpd_logcmd=${qmailsmtpd_nologcmd}
        fi
        command="/usr/bin/env - ${qmailsmtpd_postenv} /usr/pkg/bin/softlimit -m ${qmailsmtpd_datalimit} ${qmailsmtpd_pretcpserver} $
        command_args="&"
        rc_flags=""
}

qmailsmtpd_stat()
{
        run_rc_command status
}

qmailsmtpd_pause()
{
        if ! statusmsg=`run_rc_command status`; then
                echo $statusmsg
                return 1
        fi
        echo "Pausing ${name}."
        kill -STOP $rc_pid
}

qmailsmtpd_cont()
{
        if ! statusmsg=`run_rc_command status`; then
                echo $statusmsg
                return 1
        fi
        echo "Continuing ${name}."
        kill -CONT $rc_pid
}

qmailsmtpd_cdb()
{
        echo "Reloading /usr/pkg/etc/qmail/tcp.smtp."
        /usr/pkg/bin/tcprules /usr/pkg/etc/qmail/tcp.smtp.cdb /usr/pkg/etc/qmail/tcp.smtp.tmp < /usr/pkg/etc/qmail/tcp.smtp
        /bin/chmod 644 /usr/pkg/etc/qmail/tcp.smtp.cdb
}
if [ -f /etc/rc.subr ]; then
        load_rc_config $name
        run_rc_command "$1"
else
        echo -n " ${name}"
        qmailsmtpd_precmd
        eval ${command} ${qmailsmtpd_flags} ${command_args}
fi