Skip to content
Snippets Groups Projects
Commit 6e6acfcf authored by rswindell's avatar rswindell
Browse files

Uses new utility functions defined in newsutil.js: write_news_header() and

parse_news_header().
parent 20465c82
No related branches found
No related tags found
No related merge requests found
......@@ -34,6 +34,7 @@ var antispam = format(".remove-%s-this"
var cfg_fname = system.ctrl_dir + "newslink.cfg";
load("sbbsdefs.js");
load("newsutil.js");
var debug = false;
var slave = false;
......@@ -304,7 +305,6 @@ for(i in area) {
break;
}
writeln("Path: " + hdr.path);
if(!email_addresses)
writeln(format("From: %s@%s",hdr.from,newsgroup));
else if(hdr.from.indexOf('@')!=-1)
......@@ -325,22 +325,15 @@ for(i in area) {
,hdr.from
,hdr.from.replace(/ /g,".").toLowerCase()
,system.inetaddr,antispam));
if(hdr.from_org==undefined && !hdr.from_net_type)
hdr.from_org=system.name;
if(hdr.from_org!=undefined)
writeln("Organization: " + hdr.from_org);
writeln("To: " + hdr.to);
writeln("X-Comment-To: " + hdr.to);
writeln("Subject: " + hdr.subject);
writeln("Message-ID: " + hdr.id);
writeln("Date: " + hdr.date);
if(hdr.newsgroups==undefined)
hdr.newsgroups=newsgroup;
writeln("Newsgroups: " + hdr.newsgroups);
if(hdr.replyto!=undefined)
writeln("Reply-To: " + hdr.replyto);
if(hdr.reply_id!=undefined)
writeln("References: " + hdr.reply_id);
if(hdr.from_org==undefined && !hdr.from_net_type)
hdr.from_org=system.name;
write_news_header(hdr); // from newsutil.js
writeln("X-Gateway: "
+ system.inetaddr
+ " [Synchronet "
......@@ -350,20 +343,6 @@ for(i in area) {
+ "]"
);
/* Add a Sender: header field? */
/* FidoNet header */
if(hdr.ftn_pid!=undefined)
writeln("X-FTN-PID: " + hdr.ftn_pid);
if(hdr.ftn_area!=undefined)
writeln("X-FTN-AREA: " + hdr.ftn_area);
if(hdr.ftn_flags!=undefined)
writeln("X-FTN-FLAGS: " + hdr.ftn_flags);
if(hdr.ftn_msgid!=undefined)
writeln("X-FTN-MSGID: " + hdr.ftn_msgid);
if(hdr.ftn_reply!=undefined)
writeln("X-FTN-REPLY: " + hdr.ftn_reply);
writeln("");
if(hdr.to.toLowerCase()!="all") {
writeln(" To: " + hdr.to);
......@@ -461,78 +440,12 @@ for(i in area) {
}
//print(line);
/* Parse header lines */
if((sp=line.indexOf(':'))==-1)
continue;
parse_news_header(hdr,line); // from newsutil.js
}
data=line.slice(sp+1);
while(data.charAt(0)==' ') // trim prepended spaces
data=data.slice(1);
data=truncsp(data); // trim trailing spaces
line=line.substr(0,sp);
while(line.charAt(0)==' ') // trim prepended spaces
line=line.slice(1);
line=truncsp(line); // trim trailing spaces
switch(line.toLowerCase()) {
case "to":
case "apparently-to":
case "x-comment-to":
hdr.to=data;
break;
case "newsgroups":
if(hdr.to==newsgroup)
hdr.to=data;
hdr.newsgroups=data;
break;
case "path":
hdr.path=data;
break;
case "from":
hdr.from=data;
break;
case "organization":
hdr.from_org=data;
break;
case "reply-to":
hdr.replyto_net_type=NET_INTERNET;
hdr.replyto=data;
break;
case "date":
hdr.date=data;
break;
case "subject":
hdr.subject=data;
break;
case "message-id":
hdr.id=data;
break;
case "references":
hdr.reply_id=data;
break;
case "x-gateway":
hdr.gateway=data;
break;
if(hdr.to==newsgroup && hdr.newsgroups!=undefined)
hdr.to=hdr.newsgroups;
/* FidoNet headers */
case "x-ftn-pid":
hdr.ftn_pid=data;
break;
case "x-ftn-area":
hdr.ftn_area=data;
break;
case "x-ftn-flags":
hdr.ftn_flags=data;
break;
case "x-ftn-msgid":
hdr.ftn_msgid=data;
break;
case "x-ftn-reply":
hdr.ftn_reply=data;
break;
}
}
// Duplicate/looped message detection here
if(hdr.id.indexOf('@' + system.inetaddr)!=-1)
continue;
......
......@@ -14,8 +14,6 @@
// Xnews 5.04.25
// Mozilla 1.1 (Requires -auto, and a prior login via other method)
load("sbbsdefs.js");
const REVISION = "$Revision$".split(' ')[1];
var tearline = format("--- Synchronet %s%s-%s NNTP Service %s\r\n"
......@@ -23,6 +21,9 @@ var tearline = format("--- Synchronet %s%s-%s NNTP Service %s\r\n"
var tagline = format(" * %s - %s - telnet://%s\r\n"
,system.name,system.location,system.inetaddr);
load("sbbsdefs.js");
load("newsutil.js");
var debug = false;
var no_anonymous = false;
var auto_login = false;
......@@ -438,9 +439,7 @@ while(client.socket.is_connected) {
break;
if(cmd[0].toUpperCase()!="BODY") {
if(hdr.path==undefined)
hdr.path="not-for-mail";
writeln("Path: " + system.inetaddr + "!" + hdr.path);
if(!hdr.from_net_type) /* local message */
writeln(format("From: \"%s\" <%s@%s>"
,hdr.from
......@@ -457,36 +456,17 @@ while(client.socket.is_connected) {
,hdr.from
,hdr.from.replace(/ /g,".").toLowerCase()
,hdr.from_net_addr));
if(hdr.from_org!=undefined)
if(hdr.path==undefined)
hdr.path="not-for-mail";
if(hdr.newsgroups==undefined)
hdr.newsgroups = selected.newsgroup;
if(hdr.from_org==undefined && !hdr.from_net_type)
hdr.from_org=system.name;
writeln("Organization: " + hdr.from_org);
writeln("To: " + hdr.to);
writeln("X-Comment-To: " + hdr.to);
writeln("Subject: " + hdr.subject);
writeln("Message-ID: " + hdr.id);
writeln("Date: " + hdr.date);
if(hdr.newsgroups!=undefined
&& hdr.newsgroups.indexOf(selected.newsgroup) >= 0)
writeln("Newsgroups: " + hdr.newsgroups);
else
writeln("Newsgroups: " + selected.newsgroup);
if(hdr.replyto!=undefined)
writeln("Reply-To: " + hdr.replyto);
if(hdr.reply_id!=undefined)
writeln("References: " + hdr.reply_id);
/* FidoNet header */
if(hdr.ftn_pid!=undefined)
writeln("X-FTN-PID: " + hdr.ftn_pid);
if(hdr.ftn_area!=undefined)
writeln("X-FTN-AREA: " + hdr.ftn_area);
if(hdr.ftn_flags!=undefined)
writeln("X-FTN-FLAGS: " + hdr.ftn_flags);
if(hdr.ftn_msgid!=undefined)
writeln("X-FTN-MSGID: " + hdr.ftn_msgid);
if(hdr.ftn_reply!=undefined)
writeln("X-FTN-REPLY: " + hdr.ftn_reply);
write_news_header(hdr); // from newsutil.js
}
if(hdr!=null && body!=null) /* both, separate with blank line */
writeln("");
......@@ -530,11 +510,6 @@ while(client.socket.is_connected) {
writeln("340 send article to be posted. End with <CR-LF>.<CR-LF>");
var hdr={ from: "", subject: "" };
if(!(user.security.restrictions&(UFLAG_G|UFLAG_Q))) { // !Guest and !Network Node
hdr.from=user.alias;
hdr.from_ext=user.number;
}
var posted=false;
var header=true;
var body="";
......@@ -568,79 +543,21 @@ while(client.socket.is_connected) {
}
log(line);
/* Parse header lines */
if((sp=line.indexOf(':'))==-1)
continue;
data=line.slice(sp+1);
while(data.charAt(0)==' ') // trim prepended spaces
data=data.slice(1);
data=truncsp(data); // trim trailing spaces
parse_news_header(hdr,line); // from newsutil.js
}
newsgroups=hdr.newsgroups.split(',');
line=line.substr(0,sp);
while(line.charAt(0)==' ') // trim prepended spaces
line=line.slice(1);
line=truncsp(line); // trim trailing spaces
if(hdr.to==undefined && hdr.reply_id!=undefined)
hdr.to=getReferenceTo(hdr.reply_id);
switch(line.toLowerCase()) {
case "to":
case "apparently-to":
case "x-comment-to":
hdr.to=data;
break;
case "path":
hdr.path=data;
break;
case "from":
if(user.security.restrictions&(UFLAG_G|UFLAG_Q)) // Guest or Network Node
hdr.from=data;
break;
case "organization":
hdr.from_org=data;
break;
case "reply-to":
hdr.replyto_net_type=NET_INTERNET;
hdr.replyto=data;
break;
case "date":
hdr.date=data;
break;
case "subject":
hdr.subject=data;
break;
case "message-id":
if(slave)
hdr.id=data;
break;
case "references":
hdr.reply_id=data;
if(hdr.to==undefined)
hdr.to=getReferenceTo(data);
break;
case "newsgroups":
newsgroups=data.split(',');
hdr.newsgroups=data;
break;
case "x-ftn-pid":
hdr.ftn_pid=data;
break;
case "x-ftn-area":
hdr.ftn_area=data;
break;
case "x-ftn-flags":
hdr.ftn_flags=data;
break;
case "x-ftn-msgid":
hdr.ftn_msgid=data;
break;
case "x-ftn-reply":
hdr.ftn_reply=data;
break;
}
}
if(hdr.to==undefined && hdr.newsgroups!=undefined)
hdr.to=hdr.newsgroups;
if(!(user.security.restrictions&(UFLAG_G|UFLAG_Q))) { // !Guest and !Network Node
hdr.from=user.alias;
hdr.from_ext=user.number;
}
if(system.trashcan("subject",hdr.subject)) {
log(format("!BLOCKED subject: %s",hdr.subject));
var reason = format("Blocked subject from %s (%s): %s"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment