//
// 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>
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)
}
-// ***************** END UTILITY FUNCTIONS THAT COULD BE MOVED ELSEWHERE LATER **************
-
-
-
//
// Here's where our NNTP session begins its happy day.
//
}
// 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"));
}
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");
}
-//
-// 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);
{
if (!threading)
{
- CtdlRegisterServiceHook(config.c_nntp_port,
+ CtdlRegisterServiceHook(CtdlGetConfigInt("c_nntp_port"),
NULL,
nntp_greeting,
nntp_command_loop,
CitadelServiceNNTP);
#ifdef HAVE_OPENSSL
- CtdlRegisterServiceHook(config.c_nntps_port,
+ CtdlRegisterServiceHook(CtdlGetConfigInt("c_nntps_port"),
NULL,
nntps_greeting,
nntp_command_loop,
CitadelServiceNNTPS);
#endif
- CtdlRegisterCleanupHook(nntp_cleanup);
CtdlRegisterSessionHook(nntp_cleanup_function, EVT_STOP, PRIO_STOP + 250);
}