From 5e25ff8fbebc28aa8ed9ea437e3af8bac6930743 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 31 Jan 2003 04:11:24 +0000
Subject: [PATCH] Fixed the XOVER command for compatibility with tin
 (newsreader), now returns error 412 instead 500 if no article is specified
 and no article was previously selected. Also, OVER is now synonymous with
 XOVER.

---
 exec/nntpservice.js | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/exec/nntpservice.js b/exec/nntpservice.js
index aebe2b7483..60b48b39c7 100644
--- a/exec/nntpservice.js
+++ b/exec/nntpservice.js
@@ -278,23 +278,22 @@ while(client.socket.is_connected) {
 					,selected.newsgroup
 					));
 			else {
-				writeln("411 no such news group");
+				writeln("411 no such newsgroup");
 				log("!no such group");
 			}
 			break;
 
+		case "OVER":
 		case "XOVER":
-			if(cmd[1]==undefined) {
-				writeln("500 Syntax error or unknown command");
-				break;
-			}
 			if(msgbase==null) {
-				writeln("412 no news group selected");
+				writeln("412 no newsgroup selected");
 				break;
 			}
 			writeln("224 Overview information follows");
 			var first, last;
-			if(cmd[1].indexOf('-')>=0)	{ /* range */
+			if(cmd[1]==undefined)
+				first=last=current_article;
+			else if(cmd[1].indexOf('-')>=0)	{ /* range */
 				range=cmd[1].split('-');
 				first=Number(range[0]);
 				last=Number(range[1]);
@@ -326,7 +325,7 @@ while(client.socket.is_connected) {
 				break;
 			}
 			if(msgbase==null) {
-				writeln("412 no news group selected");
+				writeln("412 no newsgroup selected");
 				break;
 			}
 			writeln("221 Header follows");
@@ -397,7 +396,7 @@ while(client.socket.is_connected) {
 		case "BODY":
 		case "STAT":
 			if(msgbase==null) {
-				writeln("412 no news group selected");
+				writeln("412 no newsgroup selected");
 				break;
 			}
 			if(cmd[1]==undefined) {
@@ -493,7 +492,7 @@ while(client.socket.is_connected) {
 
 				if(hdr.from_org==undefined && !hdr.from_net_type)
 					hdr.from_org=system.name;
-		
+
 				write_news_header(hdr,writeln);	// from newsutil.js
 			}
 			if(hdr!=null && body!=null)	/* both, separate with blank line */
@@ -508,7 +507,7 @@ while(client.socket.is_connected) {
 		case "NEXT":
 		case "LAST":
 			if(msgbase==null) {
-				writeln("412 no news group selected");
+				writeln("412 no newsgroup selected");
 				break;
 			}
 			if(current_article<1) {
-- 
GitLab