#!/bin/sh
#
# sshd        Starts sshd.
#

DAEMON="sshd"
PIDFILE="/var/run/$DAEMON.pid"

# Make sure the ssh-keygen program exists
[ -f /usr/bin/ssh-keygen ] || exit 0

umask 077

start() {
	# Create any missing keys
	/usr/bin/ssh-keygen -A

	printf "Starting %s: " "$DAEMON"
	start-stop-daemon --start --pidfile "$PIDFILE" \
		--exec "/usr/sbin/$DAEMON"
	status=$?
	if [ "$status" -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
	fi
	return "$status"
}

stop() {
	printf "Stopping sshd: "
	start-stop-daemon --stop --pidfile "$PIDFILE" \
		--exec "/usr/sbin/$DAEMON"
	status=$?
	if [ "$status" -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
	fi
	# sshd deletes its PID file on exit, wait for it to be gone
	while [ -f "$PIDFILE" ]; do
		sleep 0.1
	done
	return "$status"
}

restart() {
	stop
	start
}

reload() {
	printf "Reloading sshd config: "
	start-stop-daemon --stop --signal HUP -q --pidfile "$PIDFILE" \
		--exec "/usr/sbin/$DAEMON"
	status=$?
	if [ "$status" -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
	fi
	return "$status"
}

case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	restart)
		restart
		;;
	reload)
		reload
		;;
	*)
		echo "Usage: $0 {start|stop|restart|reload}"
		exit 1
esac

exit $?
