#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
-#include <time.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 <ctype.h>
#include <string.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "citadel.h"
check_ref_counts();
lprintf(7, "Creating base rooms (if necessary)\n");
- create_room(BASEROOM, 0, "", 0);
- create_room(AIDEROOM, 3, "", 0);
- create_room(SYSCONFIGROOM, 3, "", 0);
- create_room(config.c_twitroom, 0, "", 0);
+ create_room(BASEROOM, 0, "", 0, 1);
+ create_room(AIDEROOM, 3, "", 0, 1);
+ create_room(SYSCONFIGROOM, 3, "", 0, 1);
+ create_room(config.c_twitroom, 0, "", 0, 1);
lprintf(7, "Seeding the pseudo-random number generator...\n");
gettimeofday(&tv, NULL);
/*
* Cleanup routine to be called when the server is shutting down.
+ * WARNING: It's no longer safe to call this function to force a shutdown.
+ * Instead, set time_to_die = 1.
*/
void master_cleanup(void) {
struct CleanupFunctionHook *fcn;
- /* Cancel all running sessions */
- lprintf(7, "Cancelling running sessions...\n");
-
-/* FIXME do something here
- while (ContextList != NULL) {
- }
- */
-
/* Run any cleanup routines registered by loadable modules */
for (fcn = CleanupHookTable; fcn != NULL; fcn = fcn->next) {
(*fcn->h_function_pointer)();
if (CtdlAccessCheck(ac_aide)) return;
cprintf("%d Shutting down server. Goodbye.\n", OK);
- master_cleanup();
+ time_to_die = 1;
}
/*
cmd_conf(&cmdbuf[5]);
}
+ else if (!strncasecmp(cmdbuf, "SEEN", 4)) {
+ cmd_seen(&cmdbuf[5]);
+ }
+
#ifdef DEBUG_MEMORY_LEAKS
else if (!strncasecmp(cmdbuf, "LEAK", 4)) {
dump_tracked();