#!/bin/sh
#VERSION=1.1
#
# Startup script for Pure-FTPD
#
# chkconfig: 345 85 15
# description: PureFTPD is an FTP server
# processname: pure-ftpd
# config: /etc/pure-ftpd.conf
#
### BEGIN INIT INFO
# Provides:          pure-ftpd
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Ftp Daemon
# Description:       pure-ftpd ftp deamon for remote file transfer
### END INIT INFO


PATH="$PATH:/usr/sbin"
PID=/var/run/pure-ftpd.pid
BINARY=/usr/sbin/pure-ftpd

LOG=/var/log/pureftpd.log
DB=/etc/pureftpd.pdb
OPTIONS="-B -A -C 15 -E -H -k 99 -L 10000:8 -O stats:${LOG} -l puredb:${DB} -p 35000:35999 -u 99 -U 133:022 -w -Z"
OPTIONS="${OPTIONS} -Y 1 -J -S:HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 --extcert /var/run/pure-certd.sock"

UPLOAD_PID=/var/run/pure-uploadscript.pid
if [ -e /usr/local/bin/pureftpd_uploadscan.sh ]; then
	OPTIONS="-o ${OPTIONS}"
fi

CERTD_PID=/var/run/pure-certd.pid
CERTD_SOCK=/var/run/pure-certd.sock

if [ ! -e /var/lock/subsys ]; then
	mkdir -p /var/lock/subsys
fi

# See how we were called.
case "$1" in
	start)
		echo -n "Starting pure-ftpd: "
		$BINARY ${OPTIONS}
		echo
		touch /var/lock/subsys/pure-ftpd

		if [ -e /usr/local/bin/pureftpd_uploadscan.sh ]; then
			/usr/sbin/pure-uploadscript -B -p ${UPLOAD_PID} -r /usr/local/bin/pureftpd_uploadscan.sh > /dev/null 2>&1
		fi
		if [ -e /usr/local/bin/pureftpd_sni.sh ]; then
			/usr/sbin/pure-certd -B -p ${CERTD_PID} -r /usr/local/bin/pureftpd_sni.sh -s ${CERTD_SOCK} > /dev/null 2>&1
		fi
		;;
	stop)
		echo -n "Shutting down pure-ftpd: "
		kill `cat $PID`
		echo
		rm -f /var/lock/subsys/pure-ftpd

		if [ -s /usr/sbin/pure-uploadscript ] && [ -s ${UPLOAD_PID} ]; then
			kill `cat ${UPLOAD_PID}` > /dev/null 2>&1
		fi
		if [ -s /usr/sbin/pure-certd ]; then
			kill -9 `cat ${CERTD_PID}` > /dev/null 2>&1
		fi
		;;
	status)
		status pure-ftpd
		;;
	restart)
		$0 stop
		$0 start
		;;
	reread)
		echo -n "Re-reading pure-tpd config: "
		killproc pure-ftpd -HUP
		echo
		;;
	*)
		echo -n "Usage: $0 {start|stop|restart|status|reread"
		exit 1
esac

exit 0
