X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/b0e1edba81e9169e270c03fc6a6c6eb8987c1b84..9fdb87c88819de663ea208016020b26ca484e872:/package/dropbear/files/dropbear.init diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init index 6f35672d5..aaa447043 100755 --- a/package/dropbear/files/dropbear.init +++ b/package/dropbear/files/dropbear.init @@ -1,14 +1,15 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org +START=50 # Copyright (C) 2006 Carlos Sobrinho config_cb() { local cfg="$CONFIG_SECTION" local nopasswd - local type - config_get cfgtype "$cfg" TYPE + local cfgt + config_get cfgt "$cfg" TYPE - case "$cfgtype" in + case "$cfgt" in dropbear) config_get passauth $cfg PasswordAuth config_get port $cfg Port @@ -16,20 +17,20 @@ config_cb() { case "$passauth" in no|off|disabled|0) nopasswd=1;; esac - DROPBEAR_ARGS="${port:+-p $port} ${nopasswd:+-s}" + DROPBEAR_ARGS="${nopasswd:+-s }${port:+-p $port}" ;; esac } -start() { +keygen() { for keytype in rsa dss; do # check for keys - key=/tmp/dropbear/dropbear_${keytype}_host_key - [ ! -f $key ] && { + key=dropbear/dropbear_${keytype}_host_key + [ -f /tmp/$key -o -s /etc/$key ] || { # generate missing keys mkdir -p /tmp/dropbear [ -x /usr/bin/dropbearkey ] && { - /usr/bin/dropbearkey -t $keytype -f $key 2>&- >&- && exec /etc/rc.common "$initscript" start + /usr/bin/dropbearkey -t $keytype -f /tmp/$key 2>&- >&- && exec /etc/rc.common "$initscript" start } & exit 0 } @@ -39,9 +40,14 @@ start() { mkdir -p /etc/dropbear mv /tmp/dropbear/dropbear_* /etc/dropbear/ lock -u /tmp/.switch2jffs - chown root /etc/dropbear chmod 0700 /etc/dropbear +} + +start() { + [ -s /etc/dropbear/dropbear_rsa_host_key -a \ + -s /etc/dropbear/dropbear_dss_host_key ] || keygen + config_load dropbear /usr/sbin/dropbear $DROPBEAR_ARGS }