Skip to content
Snippets Groups Projects
Commit 960fe746 authored by rswindell's avatar rswindell
Browse files

Added support for parsing and sending of FidoNet-extension headers

(e.g. X-FTN-MSGID).
parent 2783a221
No related branches found
No related tags found
No related merge requests found
...@@ -280,6 +280,19 @@ for(i in area) { ...@@ -280,6 +280,19 @@ for(i in area) {
writeln("Date: " + hdr.date); writeln("Date: " + hdr.date);
writeln("References: " + hdr.reply_id); writeln("References: " + hdr.reply_id);
writeln("Newsgroups: " + newsgroup); writeln("Newsgroups: " + newsgroup);
/* FidoNet header */
if(msg.ftn_pid!=undefined)
writeln("X-FTN-PID: " + msg.ftn_pid);
if(msg.ftn_area!=undefined)
writeln("X-FTN-AREA: " + msg.ftn_area);
if(msg.ftn_flags!=undefined)
writeln("X-FTN-FLAGS: " + msg.ftn_flags);
if(msg.ftn_msgid!=undefined)
writeln("X-FTN-MSGID: " + msg.ftn_msgid);
if(msg.ftn_reply!=undefined)
writeln("X-FTN-REPLY: " + msg.ftn_reply);
writeln(""); writeln("");
if(hdr.to.toLowerCase()!="all") { if(hdr.to.toLowerCase()!="all") {
writeln(" To: " + hdr.to); writeln(" To: " + hdr.to);
...@@ -403,6 +416,22 @@ for(i in area) { ...@@ -403,6 +416,22 @@ for(i in area) {
case "references": case "references":
hdr.reply_id=data; hdr.reply_id=data;
break; break;
/* 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;
} }
} }
if(hdr.id.indexOf('@' + system.inetaddr)!=-1) // avoid dupe loop if(hdr.id.indexOf('@' + system.inetaddr)!=-1) // avoid dupe loop
......
...@@ -263,6 +263,22 @@ while(client.socket.is_connected) { ...@@ -263,6 +263,22 @@ while(client.socket.is_connected) {
case "lines": case "lines":
field=Math.round(hdr.data_length/79)+1; field=Math.round(hdr.data_length/79)+1;
break; break;
/* FidoNet header fields */
case "x-ftn-pid":
field=hdr.ftn_pid;
break;
case "x-ftn-area":
field=hdr.ftn_area;
break;
case "x-ftn-flags":
field=hdr.ftn_flags;
break;
case "x-ftn-msgid":
field=hdr.ftn_msgid;
break;
case "x-ftn-reply":
field=hdr.ftn_reply;
break;
} }
writeln(format("%u %s",i,field.toString())); writeln(format("%u %s",i,field.toString()));
...@@ -356,6 +372,18 @@ while(client.socket.is_connected) { ...@@ -356,6 +372,18 @@ while(client.socket.is_connected) {
writeln("Date: " + hdr.date); writeln("Date: " + hdr.date);
writeln("References: " + hdr.reply_id); writeln("References: " + hdr.reply_id);
writeln("Newsgroups: " + selected.newsgroup); writeln("Newsgroups: " + selected.newsgroup);
/* FidoNet header */
if(msg.ftn_pid!=undefined)
writeln("X-FTN-PID: " + msg.ftn_pid);
if(msg.ftn_area!=undefined)
writeln("X-FTN-AREA: " + msg.ftn_area);
if(msg.ftn_flags!=undefined)
writeln("X-FTN-FLAGS: " + msg.ftn_flags);
if(msg.ftn_msgid!=undefined)
writeln("X-FTN-MSGID: " + msg.ftn_msgid);
if(msg.ftn_reply!=undefined)
writeln("X-FTN-REPLY: " + msg.ftn_reply);
} }
if(hdr!=null && body!=null) /* both, separate with blank line */ if(hdr!=null && body!=null) /* both, separate with blank line */
writeln(""); writeln("");
...@@ -477,7 +505,21 @@ while(client.socket.is_connected) { ...@@ -477,7 +505,21 @@ while(client.socket.is_connected) {
case "newsgroups": case "newsgroups":
newsgroups=data.split(','); newsgroups=data.split(',');
break; break;
/* TODO: Parse date field */ 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;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment