diff network/dropbear/dropbear @ 1175:944780161c16

network/dropbear: initial import, closes #1180
author David Demelier <markand@malikania.fr>
date Tue, 22 Oct 2019 20:30:00 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/network/dropbear/dropbear	Tue Oct 22 20:30:00 2019 +0200
@@ -0,0 +1,90 @@
+#!/bin/busybox sh
+#
+# /etc/rc.d/dropbear -- run control script for dropbear
+#
+# Copyright (c) 2019 David Demelier <markand@malikania.fr>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+if [ -f /etc/rc.conf ]; then
+	. /etc/rc.conf
+fi
+
+: ${DROPBEAR_CMD:=/bin/dropbear}
+: ${DROPBEAR_ARGS:=}
+: ${DROPBEAR_PID:=/var/run/dropbear.pid}
+
+dropbear_start()
+{
+	mkdir -p /etc/dropbear
+
+	if [ ! -e /etc/dropbear/dropbear_dss_host_key ] ; then
+		/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
+	fi
+	if [ ! -e /etc/dropbear/dropbear_rsa_host_key ] ; then
+		/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
+	fi
+	if [ ! -e /etc/dropbear/dropbear_ecdsa_host_key ] ; then
+		/bin/dropbearkey -t ecdsa -f /etc/dropbear/dropbear_ecdsa_host_key
+	fi
+
+	if [ -s $DROPBEAR_PID ]; then
+		echo "dropbear is already running with pid: $(cat $DROPBEAR_PID)"
+	else
+		echo "Starting dropbear: $DROPBEAR_CMD $DROPBEAR_ARGS"
+		$DROPBEAR_CMD $DROPBEAR_ARGS
+	fi
+}
+
+dropbear_status()
+{
+	if [ -s $DROPBEAR_PID ]; then
+		echo "dropbear is running with pid: $(cat $DROPBEAR_PID)"
+	else
+		echo "dropbear is not running"
+	fi
+}
+
+dropbear_stop()
+{
+	if [ -s $DROPBEAR_PID ]; then
+		echo "Stopping dropbear."
+		kill $(cat $DROPBEAR_PID)
+	fi
+}
+
+dropbear_restart()
+{
+	dropbear_stop
+	sleep 3
+	dropbear_start
+}
+
+case $1 in
+start)
+	dropbear_start
+	;;
+status)
+	dropbear_status
+	;;
+stop)
+	dropbear_stop
+	;;
+restart)
+	dropbear_restart
+	;;
+*)
+	echo "usage: $(basename $0) restart|start|status|stop"
+	;;
+esac