From 35ec923e0909eb294769ddb49ad5fe0338abc0ad Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 14 Nov 2003 22:17:28 +0000 Subject: [PATCH] Enforce user lines_per_message limit. --- exec/nntpservice.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/exec/nntpservice.js b/exec/nntpservice.js index a8080af0a3..feb5f8f063 100644 --- a/exec/nntpservice.js +++ b/exec/nntpservice.js @@ -557,6 +557,7 @@ while(client.socket.is_connected && !quit) { var header=true; var body=""; var newsgroups=new Array(); + var lines=0; while(client.socket.is_connected) { line = client.socket.recvline(512 /*maxlen*/, 300 /*timeout*/); @@ -582,12 +583,23 @@ while(client.socket.is_connected && !quit) { line=line.slice(1); // Skip prepended dots body += line; body += "\r\n"; + lines++; continue; } log(line); parse_news_header(hdr,line); // from newsutil.js } + + if(user.limits!=undefined + && lines > user.limits.lines_per_message) { + log(format("!Message of %u lines exceeds user limit (%u lines)" + ,lines,user.limits.lines_per_message)); + writeln(format("441 posting failed, number of lines (%u) exceeds max (%u)" + ,lines,user.limits.lines_per_message)); + break; + } + newsgroups=hdr.newsgroups.split(','); if(hdr.to==undefined && hdr.reply_id!=undefined) @@ -635,8 +647,8 @@ while(client.socket.is_connected && !quit) { if(msgbase.open!=undefined && msgbase.open()==false) continue; if(msgbase.save_msg(hdr,body)) { - log(format("%s posted a message (%lu chars) on %s" - ,user.alias, body.length, newsgroups[n])); + log(format("%s posted a message (%u chars, %u lines) on %s" + ,user.alias, body.length, lines, newsgroups[n])); writeln("240 article posted ok"); posted=true; msgs_posted++; -- GitLab