skeleton nntp_group()
authorArt Cancro <ajc@uncensored.citadel.org>
Tue, 4 Feb 2014 19:54:34 +0000 (14:54 -0500)
committerArt Cancro <ajc@uncensored.citadel.org>
Tue, 4 Feb 2014 19:54:34 +0000 (14:54 -0500)
citadel/modules/nntp/serv_nntp.c

index 2b094586d9520f369cb72fe4edabc2b34b21611a..094475ed4c59e5c726a0415b1c25d337f19c9384 100644 (file)
@@ -551,6 +551,25 @@ void nntp_help(void) {
 }
 
 
+/*
+ * Implements the GROUP command
+ */
+void nntp_group(const char *cmd) {
+       /*
+        * HACK: this works because the 5XX series error codes from citadel
+        * protocol will also be considered error codes by an NNTP client
+        */
+       if (CtdlAccessCheck(ac_logged_in_or_guest)) return;
+
+       char requested_group[1024];
+       char requested_room[ROOMNAMELEN];
+       extract_token(requested_group, cmd, 1, ' ', sizeof requested_group);
+       newsgroup_to_room(requested_room, requested_group, sizeof requested_room);
+
+       cprintf("599 FIXME screw you and your %s\r\n", requested_room);
+}
+
+
 /* 
  * Main command loop for NNTP server sessions.
  */
@@ -601,6 +620,10 @@ void nntp_command_loop(void)
                nntp_list(ChrPtr(Cmd));
        }
 
+       else if (!strcasecmp(cmdname, "group")) {
+               nntp_group(ChrPtr(Cmd));
+       }
+
        else {
                cprintf("500 I'm afraid I can't do that.\r\n");
        }