Skip to content
Snippets Groups Projects
Commit e37f0e00 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Create/use news_get_from() function, copied from nntpservice.js

Use the fully-formed "From" header field in responses to NNTP
OVER/XOVER and HDR/XHDR requests.

This should fix issue #829 reported by Accession
parent 52460c3a
No related branches found
No related tags found
No related merge requests found
......@@ -14,6 +14,37 @@ function get_news_subject(hdr)
return hdr.subject;
}
function get_news_from(hdr)
{
if(!hdr.from_net_type || !hdr.from_net_addr) /* local message */
return format("\"%s\" <%s@%s>"
,hdr.from
,hdr.from.replace(/ /g,".").toLowerCase()
,system.inetaddr);
if(!hdr.from_net_addr.length)
return hdr.from;
if(hdr.from_net_addr.indexOf('@')!=-1)
return format("\"%s\" <%s>"
,hdr.from
,hdr.from_net_addr);
if(hdr.from_net_type == NET_FIDO)
return format("\"%s\" (%s) <%s>"
,hdr.from
,hdr.from_net_addr
,fidoaddr_to_emailaddr(hdr.from, hdr.from_net_addr));
if(hdr.from_net_type == NET_QWK)
return format("\"%s\" (%s) <%s!%s@%s>"
,hdr.from
,hdr.from_net_addr
,hdr.from_net_addr
,hdr.from.replace(/ /g,".")
,system.inetaddr);
return format("\"%s\" <%s@%s>"
,hdr.from
,hdr.from.replace(/ /g,".").toLowerCase()
,hdr.from_net_addr);
}
function write_news_header(hdr,writeln)
{
/* Required header fields */
......
......@@ -562,7 +562,7 @@ while(client.socket.is_connected && !quit) {
writeln(format("%u\t%s\t%s\t%s\t%s\t%s\t%u\t%u\tXref:%s"
,i
,get_news_subject(hdr)
,hdr.from
,get_news_from(hdr)
,hdr.date
,hdr.id // message-id
,hdr.reply_id ? hdr.reply_id : '' // references
......@@ -618,7 +618,7 @@ while(client.socket.is_connected && !quit) {
field=get_news_subject(hdr);
break;
case "from":
field=hdr.from;
field=get_news_from(hdr);
break;
case "reply-to":
field=hdr.replyto;
......@@ -767,34 +767,7 @@ while(client.socket.is_connected && !quit) {
if(cmd[0].toUpperCase()!="BODY") {
if(!hdr.from_net_type || !hdr.from_net_addr) /* local message */
writeln(format("From: \"%s\" <%s@%s>"
,hdr.from
,hdr.from.replace(/ /g,".").toLowerCase()
,system.inetaddr));
else if(!hdr.from_net_addr.length)
writeln(format("From: %s",hdr.from));
else if(hdr.from_net_addr.indexOf('@')!=-1)
writeln(format("From: \"%s\" <%s>"
,hdr.from
,hdr.from_net_addr));
else if(hdr.from_net_type == NET_FIDO)
writeln(format("From: \"%s\" (%s) <%s>"
,hdr.from
,hdr.from_net_addr
,fidoaddr_to_emailaddr(hdr.from, hdr.from_net_addr)));
else if(hdr.from_net_type == NET_QWK)
writeln(format("From: \"%s\" (%s) <%s!%s@%s>"
,hdr.from
,hdr.from_net_addr
,hdr.from_net_addr
,hdr.from.replace(/ /g,".")
,system.inetaddr));
else
writeln(format("From: \"%s\" <%s@%s>"
,hdr.from
,hdr.from.replace(/ /g,".").toLowerCase()
,hdr.from_net_addr));
writeln("From: " + get_news_from(hdr));
if(hdr.path==undefined)
hdr.path="not-for-mail";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment