#!/bin/sh

# For Red Hat chkconfig
# chkconfig: - 30 80
# description: Qmail SMTP 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-smtpd"

    if [ ! -f /etc/qmail/control/servercert.pem ]; then
       echo "No servercert.pem file found in /etc/qmail/control directory.  Aborting..."
       exit 1
    fi


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

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

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

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

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

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

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

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

    echo "Starting qmail-smtpd."
    svc -u /service/qmail-smtpd
    svc -u /service/qmail-smtpsd
    ;;
  rules)
    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    chmod 644 /etc/tcp.smtp.cdb
    echo "Reloaded /etc/tcp.smtp."
    ;;
  help)
    cat <<HELP
   stop -- stops mail service (smtp connections refused, nothing goes out)
  start -- starts mail service (smtp 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 smtp, sends qmail-send a TERM & restarts it
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status|pause|cont|rules|help}"
    exit 1
    ;;
esac

exit 0

