From 7366db90d36d2cd2ef006a24f85b831430afc9c0 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 1 Apr 2004 11:57:31 +0000 Subject: [PATCH] Added support for the "-mail" command-line switch to make the mail database available over NNTP (for sysops only). --- exec/nntpservice.js | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/exec/nntpservice.js b/exec/nntpservice.js index 589e99f013..4e00dd8ded 100644 --- a/exec/nntpservice.js +++ b/exec/nntpservice.js @@ -33,6 +33,7 @@ var slave = false; var bogus_cmd_counter = 0; var max_bogus_cmds = 10; var filter_bogus_clients = false; +var include_mail = true; // Parse arguments for(i=0;i<argc;i++) { @@ -42,6 +43,8 @@ for(i=0;i<argc;i++) { filter_bogus_clients = true; else if(argv[i].toLowerCase()=="-na") no_anonymous = true; + else if(argv[i].toLowerCase()=="-mail") + include_mail = true; else if(argv[i].toLowerCase()=="-auto") { no_anonymous = true; auto_login = true; @@ -229,6 +232,13 @@ while(client.socket.is_connected && !quit) { } else { writeln("215 list of newsgroups follows"); + if(include_mail && user.security.level == 99) { + msgbase=new MsgBase("mail"); + if(msgbase.open()==true) { + writeln(format("mail %u %u n", msgbase.last_msg, msgbase.first_msg)); + msgbase.close(); + } + } for(g in msg_area.grp_list) for(s in msg_area.grp_list[g].sub_list) { msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code); @@ -248,6 +258,8 @@ while(client.socket.is_connected && !quit) { case "XGTITLE": writeln("282 list of newsgroups follows"); + if(include_mail && user.security.level == 99) + writeln("mail complete mail database"); for(g in msg_area.grp_list) for(s in msg_area.grp_list[g].sub_list) writeln(format("%s %s" @@ -268,16 +280,25 @@ while(client.socket.is_connected && !quit) { break; } found=false; - for(g in msg_area.grp_list) - for(s in msg_area.grp_list[g].sub_list) - if(msg_area.grp_list[g].sub_list[s].newsgroup.toLowerCase()==cmd[1].toLowerCase()) { - msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code); - if(msgbase.open!=undefined && msgbase.open()==false) - continue; - found=true; - selected=msg_area.grp_list[g].sub_list[s]; - break; - } + if(include_mail && user.security.level==99 && cmd[1].toLowerCase()=="mail") { + msgbase=new MsgBase("mail"); + if(msgbase.open()==true) { + selected = { newsgroup: "mail" }; + found=true; + } + } + if(!found) { + for(g in msg_area.grp_list) + for(s in msg_area.grp_list[g].sub_list) + if(msg_area.grp_list[g].sub_list[s].newsgroup.toLowerCase()==cmd[1].toLowerCase()) { + msgbase=new MsgBase(msg_area.grp_list[g].sub_list[s].code); + if(msgbase.open!=undefined && msgbase.open()==false) + continue; + found=true; + selected=msg_area.grp_list[g].sub_list[s]; + break; + } + } if(found) writeln(format("211 %u %u %u %s group selected" ,msgbase.total_msgs // articles in group -- GitLab