#!/bin/bash
#
# chkconfig: 345 15 85
# description: This startup script launches the courier imaps daemon

### BEGIN INIT INFO
# Provides: courier-imap-ssl
# Required-Start: courier-authdaemon
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 345
# Short-Description: Courier imaps daemon
# Description: This startup script launches the courier imaps daemon
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

# Source courier imapd and imapd-ssl configuration
. /etc/courier/imapd
. /etc/courier/imapd-ssl

NAME=courier-imapd-ssl
WRAPPER=courierlogger
PROGRAM=/usr/lib64/courier-imap/couriertcpd
LOCKFILE=/var/lock/subsys/courier-imapd-ssl

start() {
    # Check if it is already running
    if [ ! -f $LOCKFILE ]; then
	gprintf "Starting %s" "$NAME"
	if [ -n "$TLS_CACHEFILE" ]; then
	    rm -f $TLS_CACHEFILE
	fi
	umask $IMAP_UMASK
	ulimit -v $IMAP_ULIMITD
	export PROXY_HOSTNAME=$PROXY_HOSTNAME
	export IMAP_TLS=1;
	daemon $WRAPPER -pid=$SSLPIDFILE -start \
	    $SSLLOGGEROPTS \
	    $PROGRAM \
	    -address=$ADDRESS \
	    -maxprocs=$MAXDAEMONS \
	    -maxperip=$MAXPERIP \
	    $TCPDOPTS \
	    $SSLPORT \
	    $COURIERTLS -server -tcpd \
	    /usr/sbin/imaplogin \
	    /usr/bin/imapd \
	    $MAILDIRPATH
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch $LOCKFILE
	echo
    fi
    return $RETVAL
}

stop() {
    gprintf "Stopping %s" "$NAME"
    daemon $WRAPPER -pid=$SSLPIDFILE -stop
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
    echo
    return $RETVAL
}

reload() {
    gprintf "Reloading %s" "$NAME"
    daemon $WRAPPER -pid=$SSLPIDFILE -restart
    RETVAL=$?
    echo
    return $RETVAL
}

# See how we were called.
case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    restart)
	stop
	start
	;;
    condrestart)
	if [ -f $LOCKFILE ]; then
	    start
	    stop
	fi
	;;
    reload)
	reload
	;;
    status)
	status $PROGRAM
	;;
    *)
	gprintf "Usage: %s {start|stop|restart|condrestart|reload|status}\n" "$0"
	exit 1
esac

exit $RETVAL
