From d1bfb6bfb7a346715a66318ec9d1e860903c8245 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Thu, 26 Feb 2009 13:20:53 +0000
Subject: [PATCH] disapproval of revision
 'a101cbd046507cf723e6362a49196dbd4b924042'

--HG--
extra : convert_revision : e1c100e6366c5d607af08f4abdbb0f4281df4fa9
---
 common-session.c |  2 +-
 packet.c         | 15 +++------------
 packet.h         |  2 +-
 3 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/common-session.c b/common-session.c
index d1545e68..b48d2108 100644
--- a/common-session.c
+++ b/common-session.c
@@ -189,7 +189,7 @@ void session_loop(void(*loophandler)()) {
 		/* process session socket's incoming/outgoing data */
 		if (ses.sock_out != -1) {
 			if (FD_ISSET(ses.sock_out, &writefd) && !isempty(&ses.writequeue)) {
-				write_packets();
+				write_packet();
 			}
 		}
 
diff --git a/packet.c b/packet.c
index 4e2eedfc..870d5d81 100644
--- a/packet.c
+++ b/packet.c
@@ -46,16 +46,14 @@ static buffer* buf_decompress(buffer* buf, unsigned int len);
 static void buf_compress(buffer * dest, buffer * src, unsigned int len);
 #endif
 
-/* non-blocking function writing out a current encrypted packet. Returns
- * DROPBEAR_SUCCESS if entire packet was written, DROPBEAR_FAILURE
- * otherwise */
-static int write_packet() {
+/* non-blocking function writing out a current encrypted packet */
+void write_packet() {
 
 	int len, written;
-	int ret = DROPBEAR_FAILURE;
 	buffer * writebuf = NULL;
 	
 	TRACE(("enter write_packet"))
+	dropbear_assert(!isempty(&ses.writequeue));
 
 	/* Get the next buffer in the queue of encrypted packets to write*/
 	writebuf = (buffer*)examine(&ses.writequeue);
@@ -86,19 +84,12 @@ static int write_packet() {
 		dequeue(&ses.writequeue);
 		buf_free(writebuf);
 		writebuf = NULL;
-		ret = DROPBEAR_SUCCESS;
 	} else {
 		/* More packet left to write, leave it in the queue for later */
 		buf_incrpos(writebuf, written);
 	}
 
 	TRACE(("leave write_packet"))
-	return ret;
-}
-
-void write_packets() {
-	/* keep writing packets while we can. */
-	while (!isempty(&ses.writequeue) && write_packet() == DROPBEAR_SUCCESS) {}
 }
 
 /* Non-blocking function reading available portion of a packet into the
diff --git a/packet.h b/packet.h
index db203d36..8fadeb38 100644
--- a/packet.h
+++ b/packet.h
@@ -28,7 +28,7 @@
 
 #include "includes.h"
 
-void write_packets();
+void write_packet();
 void read_packet();
 void decrypt_packet();
 void encrypt_packet();
-- 
GitLab