stable now but there are GIANT PIECES MISSING
[citadel.git] / citadel / modules / nntp / serv_nntp.c
index b5b91db791b8d02a1bb98212088a60005266633d..20fc17e84e939567bc994ca063ae84d8209a6738 100644 (file)
@@ -1,7 +1,7 @@
 //
 // NNTP server module (RFC 3977)
 //
-// Copyright (c) 2014 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,10 +163,6 @@ 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.
 //
@@ -200,7 +182,7 @@ void nntp_greeting(void)
        }
 
        // Display the standard greeting
-       cprintf("200 %s NNTP Citadel server is not finished yet\r\n", config.c_fqdn);
+       cprintf("200 %s NNTP Citadel server is not finished yet\r\n", CtdlGetConfigStr("c_fqdn"));
 }
 
 
@@ -238,7 +220,7 @@ void nntp_starttls(void)
 void nntp_capabilities(void)
 {
        cprintf("101 Capability list:\r\n");
-       cprintf("IMPLEMENTATION Citadel v%d.%02d\r\n", (REV_LEVEL/100), (REV_LEVEL%100));
+       cprintf("IMPLEMENTATION Citadel %d\r\n", REV_LEVEL);
        cprintf("VERSION 2\r\n");
        cprintf("READER\r\n");
        cprintf("MODE-READER\r\n");
@@ -264,27 +246,18 @@ void nntp_quit(void)
 }
 
 
-//
-// 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)
 {
-       int a = CtdlLoginExistingUser(NULL, username);
+       int a = CtdlLoginExistingUser(username);
        switch (a) {
        case login_already_logged_in:
                cprintf("482 Already logged in\r\n");
                return;
        case login_too_many_users:
-               cprintf("481 Too many users are already online (maximum is %d)\r\n", config.c_maxsessions);
+               cprintf("481 Too many users are already online (maximum is %d)\r\n", CtdlGetConfigInt("c_maxsessions"));
                return;
        case login_ok:
                cprintf("381 Password required for %s\r\n", CC->curr_user);
@@ -1178,7 +1151,7 @@ CTDL_MODULE_INIT(nntp)
 {
        if (!threading)
        {
-               CtdlRegisterServiceHook(config.c_nntp_port,
+               CtdlRegisterServiceHook(CtdlGetConfigInt("c_nntp_port"),
                                        NULL,
                                        nntp_greeting,
                                        nntp_command_loop,
@@ -1186,7 +1159,7 @@ CTDL_MODULE_INIT(nntp)
                                        CitadelServiceNNTP);
 
 #ifdef HAVE_OPENSSL
-               CtdlRegisterServiceHook(config.c_nntps_port,
+               CtdlRegisterServiceHook(CtdlGetConfigInt("c_nntps_port"),
                                        NULL,
                                        nntps_greeting,
                                        nntp_command_loop,
@@ -1194,7 +1167,6 @@ CTDL_MODULE_INIT(nntp)
                                        CitadelServiceNNTPS);
 #endif
 
-               CtdlRegisterCleanupHook(nntp_cleanup);
                CtdlRegisterSessionHook(nntp_cleanup_function, EVT_STOP, PRIO_STOP + 250);
        }