From 5dcc582161ad5e2a91ef4ca631bc81ae27d9d217 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Thu, 8 Jan 2009 23:59:41 +0000
Subject: [PATCH] Use recv() rather than recvln() for the message body.

---
 exec/load/salib.js | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/exec/load/salib.js b/exec/load/salib.js
index 17692bfd20..1f382c2852 100644
--- a/exec/load/salib.js
+++ b/exec/load/salib.js
@@ -30,6 +30,7 @@ function Message_DoCommand(command)
 	var tmp;
 	var sock=new Socket(SOCK_STREAM, "spamc");
 	var ret=new Object();
+	ret.message='';
 
 	command=command.toUpperCase();
 	if(!sock.connect(this.addr, this.port)) {
@@ -42,9 +43,21 @@ function Message_DoCommand(command)
 	sock.write("\r\n");
 	sock.sendfile(this.messagefile);
 	sock.is_writeable=false;
-	while((tmp=sock.recvline())!=undefined) {
+	while(1) {
+		tmp=sock.recvline();
+		if(tmp==undefined || tmp=='')
+			break;
 		rcvd.push(tmp);
 	}
+	if(sock.is_connected) {
+		// Read the body
+		while(1) {
+			tmp=sock.recv();
+			if(tmp==undefined || tmp=='')
+				break;
+			ret.message += tmp;
+		}
+	}
 	if(rcvd.length < 1) {
 		log("ERROR: No lines read from spamd");
 		return(false)
@@ -59,7 +72,6 @@ function Message_DoCommand(command)
 		return(false)
 	}
 
-	ret.message='';
 	/* Parse headers */
 	for(line=1; line<rcvd.length; line++) {
 		if(rcvd[line]=='')
@@ -78,12 +90,9 @@ function Message_DoCommand(command)
 		}
 	}
 
-	/* Parse message */
-	for(line++; line<rcvd.length; line++)
-		ret.message += rcvd[line]+"\r\n";
-
 	if(command == 'SYMBOLS') {
 		if(ret!==false) {
+			ret.message=ret.message.replace(/[\r\n]/g,'');
 			ret.symbols=ret.message.split(/,/);
 			ret.message='';
 		}
-- 
GitLab