diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-10-29 05:53:13 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2006-10-29 05:53:13 +0000 |
commit | b0e1edba81e9169e270c03fc6a6c6eb8987c1b84 (patch) | |
tree | 5e9f17ed007f489e45abadc78bc367fb63f05545 /package/dropbear | |
parent | fbaefdbf9de2fc01f684260562c0edc8912ceb22 (diff) |
sync dropbear init script with whiterussian, fix locking and add config integration by Carlos Sobrinho
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@5331 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/dropbear')
-rw-r--r-- | package/dropbear/Makefile | 2 | ||||
-rw-r--r-- | package/dropbear/files/dropbear.config | 3 | ||||
-rwxr-xr-x | package/dropbear/files/dropbear.init | 54 |
3 files changed, 46 insertions, 13 deletions
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile index 18e4a45708..546facf923 100644 --- a/package/dropbear/Makefile +++ b/package/dropbear/Makefile @@ -106,6 +106,8 @@ define Package/dropbear/install ln -sf ../sbin/dropbear $(1)/usr/bin/ssh ln -sf ../sbin/dropbear $(1)/usr/bin/dbclient ln -sf ../sbin/dropbear $(1)/usr/bin/dropbearkey + install -d -m0755 $(1)/etc/config + install -m0755 ./files/dropbear.config $(1)/etc/config/dropbear install -d -m0755 $(1)/etc/init.d install -m0755 ./files/dropbear.init $(1)/etc/init.d/dropbear endef diff --git a/package/dropbear/files/dropbear.config b/package/dropbear/files/dropbear.config new file mode 100644 index 0000000000..e660ac7356 --- /dev/null +++ b/package/dropbear/files/dropbear.config @@ -0,0 +1,3 @@ +config dropbear + option PasswordAuth 'on' + option Port '22' diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init index b928af65cc..6f35672d54 100755 --- a/package/dropbear/files/dropbear.init +++ b/package/dropbear/files/dropbear.init @@ -1,21 +1,49 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2006 Carlos Sobrinho + +config_cb() { + local cfg="$CONFIG_SECTION" + local nopasswd + local type + config_get cfgtype "$cfg" TYPE + + case "$cfgtype" in + dropbear) + config_get passauth $cfg PasswordAuth + config_get port $cfg Port + + case "$passauth" in + no|off|disabled|0) nopasswd=1;; + esac + DROPBEAR_ARGS="${port:+-p $port} ${nopasswd:+-s}" + ;; + esac +} start() { - for type in rsa dss; do { - # check for keys - key=/etc/dropbear/dropbear_${type}_host_key - [ ! -f $key ] && { - # generate missing keys - mkdir -p /etc/dropbear - [ -x /usr/bin/dropbearkey ] && { - /usr/bin/dropbearkey -t $type -f $key 2>&- >&- && exec /etc/rc.common "$initscript" start - } & - exit 0 - } - }; done + for keytype in rsa dss; do + # check for keys + key=/tmp/dropbear/dropbear_${keytype}_host_key + [ ! -f $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 + } & + exit 0 + } + done + + lock /tmp/.switch2jffs + mkdir -p /etc/dropbear + mv /tmp/dropbear/dropbear_* /etc/dropbear/ + lock -u /tmp/.switch2jffs - /usr/sbin/dropbear + chown root /etc/dropbear + chmod 0700 /etc/dropbear + config_load dropbear + /usr/sbin/dropbear $DROPBEAR_ARGS } stop() { |