diff --git a/exec/nntpservice.js b/exec/nntpservice.js index b9ffba4e91e0c1048aec8ae0510ff37536f6a7eb..80d2626a546361c4aa299f821d299d8a3140877d 100644 --- a/exec/nntpservice.js +++ b/exec/nntpservice.js @@ -400,6 +400,10 @@ while(client.socket.is_connected && !quit) { writeln("412 no newsgroup selected"); break; } + if(!selected.can_read) { + writeln("412 read permission to newsgroup denied"); + break; + } var first, last; if(cmd[1]==undefined || cmd[1].length==0) first=last=current_article; @@ -441,6 +445,10 @@ while(client.socket.is_connected && !quit) { writeln("412 no newsgroup selected"); break; } + if(!selected.can_read) { + writeln("412 read permission to newsgroup denied"); + break; + } writeln("221 Header follows"); var first, last; if(cmd[2].indexOf('-')>=0) { /* range */ @@ -518,6 +526,10 @@ while(client.socket.is_connected && !quit) { bogus_cmd_counter++; break; } + if(!selected.can_read) { + writeln("412 read permission to newsgroup denied"); + break; + } if(cmd[1]==undefined || cmd[1].length==0) { writeln("420 no current article has been selected"); bogus_cmd_counter++;