diff --git a/exec/nntpservice.js b/exec/nntpservice.js index c9254dd5d5c724e20c1c79f5e620e7efdc215329..abd91bb6ed56723e7ad1230f4eb3395f48cf8fd3 100644 --- a/exec/nntpservice.js +++ b/exec/nntpservice.js @@ -6,15 +6,19 @@ // NNTP 119 0-unlimited 0 nntpservice.js +load("sbbsdefs.js"); const VERSION = "1.00 Alpha"; var debug = false; +var no_anonymous = false; // Parse arguments for(i=0;i<argc;i++) if(argv[i].toLowerCase()=="-d") debug = true; + else if(argv[i].toLowerCase()=="-na") + no_anonymous = true; // Write a string to the client socket function write(str) @@ -36,6 +40,9 @@ var current_article=0; writeln(format("200 %s News (Synchronet NNTP Service v%s)",system.name,VERSION)); +if(!no_anonymous) + login("guest"); // Login as guest/anonymous by default + while(client.socket.is_connected) { // Get Request @@ -288,8 +295,10 @@ while(client.socket.is_connected) { writeln("340 send article to be posted. End with <CR-LF>.<CR-LF>"); var hdr=new Object(); - hdr.from=user.alias; - log(hdr); + if(!(user.security.restrictions&UFLAG_G)) { // !Guest + hdr.from=user.alias; + hdr.from_ext=user.number; + } var posted=false; var header=true; @@ -322,6 +331,7 @@ while(client.socket.is_connected) { body += "\r\n"; continue; } + log(line); /* Parse header lines */ if(line.indexOf(':')==-1) @@ -331,6 +341,10 @@ while(client.socket.is_connected) { field[1]=field[1].slice(1); switch(field[0].toLowerCase()) { + case "from": + if(user.security.restrictions&UFLAG_G) // Guest + hdr.from=field[1]; + break; case "subject": hdr.subject=field[1]; break;