INN commit: trunk/innd (nc.c)

INN Commit Russ_Allbery at isc.org
Sat Aug 23 20:50:57 UTC 2008


    Date: Saturday, August 23, 2008 @ 13:50:57
  Author: iulius
Revision: 7957

In transit mode, return "401 MODE-READER" if a command only
available in reader mode is received.  If readers are not
allowed, return "502 Permission denied".

Modified:
  trunk/innd/nc.c

------+
 nc.c |   15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

Modified: nc.c
===================================================================
--- nc.c	2008-08-23 19:23:24 UTC (rev 7956)
+++ nc.c	2008-08-23 20:50:57 UTC (rev 7957)
@@ -68,13 +68,17 @@
     COMMAND("body",      NC_reader),
     COMMAND("date",      NC_reader),
     COMMAND("group",     NC_reader),
+    COMMAND("hdr",       NC_reader),
     COMMAND("last",      NC_reader),
     COMMAND("listgroup", NC_reader),
     COMMAND("newgroups", NC_reader),
     COMMAND("newnews",   NC_reader),
     COMMAND("next",      NC_reader),
+    COMMAND("over",      NC_reader),
     COMMAND("post",      NC_reader),
+#ifdef HAVE_SSL
     COMMAND("starttls",  NC_reader),
+#endif
     COMMAND("xgtitle",   NC_reader),
     COMMAND("xhdr",      NC_reader),
     COMMAND("xover",     NC_reader),
@@ -698,8 +702,17 @@
 static void
 NC_reader(CHANNEL *cp)
 {
+    char buff[SMBUF];
+
     cp->Start = cp->Next;
-    NCwritereply(cp, NNTP_ACCESS);
+    if ((innconf->noreader)
+     || (NNRPReason != NULL && !innconf->readerswhenstopped))
+        snprintf(buff, sizeof(buff), "%d Permission denied\r\n",
+                 NNTP_ERR_ACCESS);
+    else
+        snprintf(buff, sizeof(buff), "%d MODE-READER",
+                 NNTP_FAIL_WRONG_MODE);
+    NCwritereply(cp, buff);
 }
 
 



More information about the inn-committers mailing list