diff options
| -rwxr-xr-x | package/dropbear/files/dropbear.init | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init index 6f35672d5..2ea547267 100755 --- a/package/dropbear/files/dropbear.init +++ b/package/dropbear/files/dropbear.init @@ -21,15 +21,15 @@ config_cb() {  	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 -f /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 /etc/$key 2>&- >&- && exec /etc/rc.common "$initscript" start  			} &  		exit 0  		} @@ -39,9 +39,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() { +	[ -f /etc/dropbear/dropbear_rsa_host_key -a \ +	  -f /etc/dropbear/dropbear_dss_host_key ] || keygen +	  	config_load dropbear  	/usr/sbin/dropbear $DROPBEAR_ARGS  } | 
