#!/bin/sh

# For Red Hat chkconfig
# chkconfig: - 30 80
# description: Qmail QMTP Receiver

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

if [ -f /usr/xpg4/bin/id ]; then
   # Solaris version
   ID=/usr/xpg4/bin/id
 else
   ID=id
fi

QMAILDUID=`$ID -u qmaild`
NOFILESGID=`$ID -g qmaild`

case "$1" in
  start)
    echo "Starting qmail-qmtpd"

    rm -f /var/qmail/supervise/qmail-qmtpd/down
    ln -sf /var/qmail/supervise/qmail-qmtpd /service
    svc -u /service/qmail-qmtpd 2> /dev/null

    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail-qmtpd
    fi
    ;;
  stop)
    echo "Stopping qmail-qmtpd..."
    rm -f /service/qmail-qmtpd
    touch /var/qmail/supervise/qmail-qmtpd/down

    svc -x /var/qmail/supervise/qmail-qmtpd 2> /dev/null
    svc -d /var/qmail/supervise/qmail-qmtpd 2> /dev/null

    svc -x /var/qmail/supervise/qmail-qmtpd/log 2> /dev/null
    svc -d /var/qmail/supervise/qmail-qmtpd/log 2> /dev/null

    if [ -f /var/lock/subsys/qmail-qmtpd ]; then
      rm /var/lock/subsys/qmail-qmtpd
    fi
    ;;
  status)
    svstat /var/qmail/supervise/qmail-qmtpd
    svstat /var/qmail/supervise/qmail-qmtpd/log
    ;;
  pause)
    echo "Pausing qmail-qmtpd"
    svc -p /service/qmail-smtpd
    ;;
  cont)
    echo "Continuing qmail-qmtpd"
    svc -c /service/qmail-smtpd
    ;;
  restart)
    echo "Stopping qmail-qmtpd."
    svc -d /service/qmail-smtpd

    echo "Starting qmail-qmtpd."
    svc -u /service/qmail-smtpd
    ;;
  rules)
    tcprules /etc/tcp.qmtp.cdb /etc/tcp.qmtp.tmp < /etc/tcp.qmtp
    chmod 644 /etc/tcp.qmtp.cdb
    echo "Reloaded /etc/tcp.qmtp."
    ;;
  help)
    cat <<HELP
   stop -- stops mail service (qmtp connections refused, nothing goes out)
  start -- starts mail service (qmtp connection accepted, mail can go out)
  pause -- temporarily stops mail service (connections accepted, nothing leaves)
   cont -- continues paused mail service
 status -- displays status of mail service
  rules -- rebuild the tcpserver cdb rules file for smtp
restart -- stops and restarts qmtp.
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status|pause|cont|rules|help}"
    exit 1
    ;;
esac

exit 0

