cleanup & fix logic not to depend on dropbearkey if keys exist
[openwrt.git] / package / dropbear / files / S50dropbear
index c7ae0af..41c99a5 100755 (executable)
@@ -1,64 +1,17 @@
 #!/bin/sh
-#
-# Starts dropbear sshd.
-#
 
-# Make sure the dropbearkey progam exists
-[ -f /usr/bin/dropbearkey ] || exit 0
-
-# Check for the Dropbear RSA key
-if [ ! -f /etc/dropbear/dropbear_rsa_host_key ] ; then
-       (
-               echo Generating RSA Key...
-               mkdir -p /etc/dropbear
-               /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
-               [ -f /etc/dropbear/dropbear_rsa_host_key ] && exec $0 $*
-       ) > /dev/null 2> /dev/null &
-       exit 0
-fi
-
-# Check for the Dropbear DSS key
-if [ ! -f /etc/dropbear/dropbear_dss_host_key ] ; then
-       (
-               echo Generating DSS Key...
-               mkdir -p /etc/dropbear
-               /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
-               [ -f /etc/dropbear/dropbear_dss_host_key ] && exec $0 $*
-       ) > /dev/null 2> /dev/null &
-       exit 0
-fi
+for type in rsa dss; do {
+  # check for keys
+  key=/tmp/dropbear/dropbear_${type}_host_key
+  [ ! -f $key ] && {
+    # generate missing keys
+    mkdir -p /tmp/dropbear
+    [ -x /usr/bin/dropbearkey ] && {
+      /usr/bin/dropbearkey -t $type -f $key 2>&- >&- && exec $0 $*
+    } &
+    exit 0
+  }
+}; done
 
 umask 077
-
-start() {
-       echo -n "Starting dropbear sshd: "
-       start-stop-daemon --start --quiet --pidfile /var/run/dropbear.pid --exec /usr/sbin/dropbear
-       echo "OK"
-}
-stop() {
-       echo -n "Stopping dropbear sshd: "
-       start-stop-daemon --stop --quiet --pidfile /var/run/dropbear.pid
-       echo "OK"
-}
-restart() {
-       stop
-       start
-}
-
-case "$1" in
-  start)
-       start
-       ;;
-  stop)
-       stop
-       ;;
-  restart|reload)
-       restart
-       ;;
-  *)
-       echo $"Usage: $0 {start|stop|restart}"
-       exit 1
-esac
-
-exit $?
-
+/usr/sbin/dropbear
This page took 0.0227 seconds and 4 git commands to generate.