Added a comma after each msgnum exported. The parser was globbing them all together...
[citadel.git] / citadel / modules / nntp / serv_nntp.c
index 14f75db6ce32328f38133dec8e5a044648707270..c629fcc41856a0a839bbec8713666df7afb95dee 100644 (file)
@@ -1,7 +1,7 @@
 //
 // NNTP server module (RFC 3977)
 //
-// Copyright (c) 2014-2018 by the citadel.org team
+// Copyright (c) 2014-2020 by the citadel.org team
 //
 // This program is open source software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License version 3.
 #include <errno.h>
 #include <sys/types.h>
 #include <syslog.h>
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
+#include <time.h>
 #include <sys/wait.h>
 #include <ctype.h>
 #include <string.h>
@@ -64,9 +53,6 @@
 
 extern long timezone;
 
-//     ***************** BEGIN UTILITY FUNCTIONS THAT COULD BE MOVED ELSEWHERE LATER **************
-
-
 //
 // Tests whether the supplied string is a valid newsgroup name
 // Returns true (nonzero) or false (0)
@@ -177,15 +163,10 @@ void newsgroup_to_room(char *target, char *source, size_t target_size) {
 }
 
 
-//     *****************  END  UTILITY FUNCTIONS THAT COULD BE MOVED ELSEWHERE LATER **************
-
-
-
 //
 // Here's where our NNTP session begins its happy day.
 //
-void nntp_greeting(void)
-{
+void nntp_greeting(void) {
        strcpy(CC->cs_clientname, "NNTP session");
        CC->cs_flags |= CS_STEALTH;
 
@@ -219,8 +200,7 @@ void nntps_greeting(void) {
 //
 // implements the STARTTLS command
 //
-void nntp_starttls(void)
-{
+void nntp_starttls(void) {
        char ok_response[SIZ];
        char nosup_response[SIZ];
        char error_response[SIZ];
@@ -235,8 +215,7 @@ void nntp_starttls(void)
 //
 // Implements the CAPABILITY command
 //
-void nntp_capabilities(void)
-{
+void nntp_capabilities(void) {
        cprintf("101 Capability list:\r\n");
        cprintf("IMPLEMENTATION Citadel %d\r\n", REV_LEVEL);
        cprintf("VERSION 2\r\n");
@@ -257,27 +236,16 @@ void nntp_capabilities(void)
 // 
 // Implements the QUIT command
 //
-void nntp_quit(void)
-{
+void nntp_quit(void) {
        cprintf("221 Goodbye...\r\n");
        CC->kill_me = KILLME_CLIENT_LOGGED_OUT;
 }
 
 
-//
-// Cleanup hook for this module
-//
-void nntp_cleanup(void)
-{
-       /* nothing here yet */
-}
-
-
 //
 // Implements the AUTHINFO USER command (RFC 4643)
 //
-void nntp_authinfo_user(const char *username)
-{
+void nntp_authinfo_user(const char *username) {
        int a = CtdlLoginExistingUser(username);
        switch (a) {
        case login_already_logged_in:
@@ -301,8 +269,7 @@ void nntp_authinfo_user(const char *username)
 //
 // Implements the AUTHINFO PASS command (RFC 4643)
 //
-void nntp_authinfo_pass(const char *buf)
-{
+void nntp_authinfo_pass(const char *buf) {
        int a;
 
        a = CtdlTryPassword(buf, strlen(buf));
@@ -408,8 +375,7 @@ void output_roomname_in_list_format(struct ctdlroom *qrbuf, int which_format, ch
 //
 // Called once per room by nntp_newgroups() to qualify and possibly output a single room
 //
-void nntp_newgroups_backend(struct ctdlroom *qrbuf, void *data)
-{
+void nntp_newgroups_backend(struct ctdlroom *qrbuf, void *data) {
        int ra;
        int view;
        time_t thetime = *(time_t *)data;
@@ -476,8 +442,7 @@ void nntp_newgroups(const char *cmd) {
 //
 // Called once per room by nntp_list() to qualify and possibly output a single room
 //
-void nntp_list_backend(struct ctdlroom *qrbuf, void *data)
-{
+void nntp_list_backend(struct ctdlroom *qrbuf, void *data) {
        int ra;
        int view;
        struct nntp_list_data *nld = (struct nntp_list_data *)data;
@@ -840,7 +805,6 @@ void nntp_article(const char *cmd) {
 // The memory for the returned string is pwnz0red by the caller.
 //
 char *message_id_from_msgnum(long msgnum) {
-
        char *fetched_message_id = NULL;
        CC->redirect_buffer = NewStrBufPlain(NULL, SIZ);
        CtdlOutputMsg(msgnum,
@@ -977,7 +941,7 @@ void nntp_xover_backend(long msgnum, void *userdata) {
        if (msgnum < lr->lo) return;
        if ((lr->hi != 0) && (msgnum > lr->hi)) return;
 
-       struct CtdlMessage *msg = CtdlFetchMessage(msgnum, 0, 1);
+       struct CtdlMessage *msg = CtdlFetchMessage(msgnum, 0);
        if (msg == NULL) {
                return;
        }
@@ -1054,8 +1018,7 @@ void nntp_xover(const char *cmd) {
 // 
 // Main command loop for NNTP server sessions.
 //
-void nntp_command_loop(void)
-{
+void nntp_command_loop(void) {
        StrBuf *Cmd = NewStrBuf();
        char cmdname[16];
 
@@ -1158,8 +1121,7 @@ void nntp_command_loop(void)
 // This cleanup function blows away the temporary memory used by
 // the NNTP server.
 //
-void nntp_cleanup_function(void)
-{
+void nntp_cleanup_function(void) {
        /* Don't do this stuff if this is not an NNTP session! */
        if (CC->h_command_function != nntp_command_loop) return;
 
@@ -1194,7 +1156,6 @@ CTDL_MODULE_INIT(nntp)
                                        CitadelServiceNNTPS);
 #endif
 
-               CtdlRegisterCleanupHook(nntp_cleanup);
                CtdlRegisterSessionHook(nntp_cleanup_function, EVT_STOP, PRIO_STOP + 250);
        }