From c43fa60bb6ca82b741ade19258fd17bae33a508b Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Fri, 27 May 2011 02:09:43 +0000
Subject: [PATCH] Handle short recv()s

---
 exec/load/cvslib.js | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/exec/load/cvslib.js b/exec/load/cvslib.js
index 76c158e1ce..40da98c20b 100644
--- a/exec/load/cvslib.js
+++ b/exec/load/cvslib.js
@@ -222,7 +222,18 @@ CVS = new (function () {
 		
 		function recv_file(socket) {
 			var length=parseInt(socket.recvline());
-			return socket.recv(length);
+			var ret='';
+
+			while(length) {
+				var str=socket.recv(length);
+				if(str) {
+					ret += str;
+					length -= str.length;
+				}
+				else
+					throw("Error on recv()");
+			}
+			return ret;
 		}
 
 		for(;;) {
-- 
GitLab