#! /bin/sh
#
### BEGIN INIT INFO
# Provides:          courier-pop-ssl
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

. /lib/lsb/init-functions

. /etc/courier-imap/pop3d
. /etc/courier-imap/pop3d-ssl

pop3dlogin_bin=/usr/sbin/pop3login
daemon=/usr/sbin/courierlogger
tcpd_bin=/usr/lib/couriertcpd
prog="Courier POP3 server with SSL/TLS support"
pidfile="$SSLPIDFILE"


pop3d_bin=/usr/bin/pop3d
[ ! -x /usr/lib/plesk-9.0/pop3login ] || pop3d_bin=/usr/lib/plesk-9.0/pop3login

[ -x $pop3d_bin -a -x $pop3dlogin_bin ] || exit;
[ -x $daemon -a -x $tcpd_bin ] || exit;
[ -x $COURIERTLS ] || exit;

start()
{
	[ "$POP3DSSLSTART" != "NO" ] || exit
	[ -z "$TLS_CACHEFILE" ] || rm -f $TLS_CACHEFILE

	/usr/bin/env -i /bin/sh -c " set -a ; 
		prefix=/usr ;
		exec_prefix=/usr ;
		bindir=/usr/bin ;
		libexecdir=/usr/lib ;
		. /etc/courier-imap/pop3d ; 
		. /etc/courier-imap/pop3d-ssl ; 
		POP3_TLS=1; 
		POP3_STARTTLS=NO; 
		POP3_TLS_REQUIRED=0; 
		$daemon $SSLLOGGEROPTS 			-pid=$pidfile ${lockfile:+-lockfile=$lockfile} 			-start -name=courier-pop3s 				$tcpd_bin 				-address=$SSLADDRESS 				-maxprocs=$MAXDAEMONS 				-maxperip=$MAXPERIP 				$TCPDOPTS $SSLPORT 				$COURIERTLS -server -tcpd 				$pop3dlogin_bin $pop3d_bin ${MAILDIRPATH}"
}

stop()
{
	$daemon -pid="$pidfile" ${lockfile:+-lockfile=$lockfile} -stop
}


status() {
	status_of_proc -p "$pidfile" "$daemon" "`basename $daemon`"
}

case "$1" in
	start)
		log_daemon_msg "Starting $prog" "`basename $daemon`"
		start
		rc=$?
		if [ $rc -eq 0 ]; then
			log_end_msg 0
		else
			log_end_msg 1
		fi
		exit $rc
	;;
	stop)
		log_daemon_msg "Stopping $prog" "`basename $daemon`"
		stop
		rc=$?
		if [ $rc -eq 0 ]; then
			log_end_msg 0
		else
			log_end_msg 1
		fi
		exit $rc
	;;
	restart|force-reload|reload)
		$0 stop
		$0 start
	;;
	status)
		status
	;;
	condrestart)
		status >/dev/null 2>&1 && stop && start || :
	;;
	*)
		echo "Usage: $0 {start|stop|restart|force-reload|reload|status|condrestart}" >&2
		exit 2
	;;
esac
exit $?
