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