include $(TOPDIR)/rules.mk
PKG_NAME:=dropbear
-PKG_VERSION:=0.49
+PKG_VERSION:=0.50
PKG_RELEASE:=1
-PKG_MD5SUM:=7b20c85f1ee34f018a1b948eae003df9
+PKG_MD5SUM:=5c0f7405b915799c3d952d3a93a5df69
PKG_SOURCE_URL:=http://matt.ucc.asn.au/dropbear/releases/ \
http://www.mirrors.wiretapped.net/security/cryptography/apps/ssh/dropbear/
+++ /dev/null
---- dropbear-0.49/cli-kex.c.orig 2007-02-22 09:51:36.000000000 -0600
-+++ dropbear-0.49/cli-kex.c 2007-03-22 13:45:57.000000000 -0500
-@@ -126,7 +126,7 @@
- m_free(fp);
- return;
- }
-- fprintf(stderr, "\nHost '%s' is not in the trusted hosts file.\n(fingerprint %s)\nDo you want to continue connecting? (y/n)\n",
-+ fprintf(stderr, "\nHost '%s' is not in the trusted hosts file.\n(fingerprint %s)\nDo you want to continue connecting? (y/n)",
- cli_opts.remotehost,
- fp);
- m_free(fp);
+++ /dev/null
-diff -urN dropbear-0.45.old/options.h dropbear-0.45/options.h
---- dropbear-0.45.old/options.h 2005-03-14 17:12:22.000000000 +0100
-+++ dropbear-0.45/options.h 2005-03-14 17:13:49.000000000 +0100
-@@ -143,7 +143,7 @@
- * however significantly reduce the security of your ssh connections
- * if the PRNG state becomes guessable - make sure you know what you are
- * doing if you change this. */
--#define DROPBEAR_RANDOM_DEV "/dev/random"
-+#define DROPBEAR_RANDOM_DEV "/dev/urandom"
-
- /* prngd must be manually set up to produce output */
- /*#define DROPBEAR_PRNGD_SOCKET "/var/run/dropbear-rng"*/
--- /dev/null
+Index: dropbear-0.50/common-channel.c
+===================================================================
+--- dropbear-0.50.orig/common-channel.c 2007-08-10 23:47:47.000000000 +0200
++++ dropbear-0.50/common-channel.c 2007-08-10 23:47:50.000000000 +0200
+@@ -311,10 +311,10 @@
+ send_msg_channel_eof(channel);
+ }
+
+- /* And if we can't receive any more data from them either, close up */
++ /* And if we can't receive any more data from them either, close up (server only) */
+ if (!channel->sent_close
+ && channel->readfd == FD_CLOSED
+- && (ERRFD_IS_WRITE(channel) || channel->errfd == FD_CLOSED)
++ && !ERRFD_IS_WRITE(channel)
+ && !write_pending(channel)) {
+ TRACE(("sending close, readfd is closed"))
+ send_msg_channel_close(channel);