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

# Make sure the dropbearkey progam exists
[ -f /usr/bin/dropbearkey ] || exit 0

DSS_FILE="/opt/userdata/dropbear_dss_host_key"
RSA_FILE="/opt/userdata/dropbear_rsa_host_key"

SSH_ENABLED="/opt/userdata/.ssh-enabled"

start() {
	if [ ! -f ${SSH_ENABLED} ]; then
		echo -n "Starting dropbear not allowed!"
		exit
	fi
 	echo -n "Starting dropbear sshd: "
	# Make sure dropbear directory exists
	#if [ ! -d /etc/dropbear ] ; then
	#	mkdir -p /etc/dropbear
	#fi
	# Check for the Dropbear RSA key
	if [ ! -f $RSA_FILE ] ; then
		echo -n "generating rsa key... "
		/usr/bin/dropbearkey -t rsa -f $RSA_FILE -s 1024 > /dev/null 2>&1
	fi

	# Check for the Dropbear DSS key
	if [ ! -f $DSS_FILE ] ; then
		echo -n "generating dsa key... "
		/usr/bin/dropbearkey -t dss -f $DSS_FILE > /dev/null 2>&1
	fi
	umask 077
	start-stop-daemon -S -q -p /var/run/dropbear.pid --exec /usr/sbin/dropbear -- -d $DSS_FILE -r $RSA_FILE
	echo "OK"
}
stop() {
	echo -n "Stopping dropbear sshd: "
	start-stop-daemon -K -q -p /var/run/dropbear.pid
	killall dropbear
	echo "OK"
}
restart() {
	stop
	start
}
disable() {
	rm -f ${SSH_ENABLED}
}
enable() {
	touch ${SSH_ENABLED}
}
reset_passwd() {
	cp /opt/gira/etc/devicestack/shadow.template.root /var/etc/shadow
}

case "$1" in
  start)
	start
	;;
  stop)
  	stop
	;;
  restart|reload)
  	restart
	;;
  start-once)
	enable
	start
	disable
	;;
  enable)
	enable
	;;
  reset-passwd)
	reset_passwd
	;;
  disable)
	disable
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|start-once|enable|disable}"
	exit 1
esac

exit $?

