]> code.citadel.org Git - citadel.git/blobdiff - citadel/control.c
* Network run frequency is now a site-definable setting
[citadel.git] / citadel / control.c
index 26ea7d3304419b8dbca1b5224b08f037fd56ab42..2b887b60a74f5e70b6041fc135bdffac02adc90e 100644 (file)
@@ -5,13 +5,28 @@
  *
  */
 
+#ifdef DLL_EXPORT
+#define IN_LIBCIT
+#endif
+
 #include "sysdep.h"
 #include <stdlib.h>
 #include <unistd.h>
 #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 "citadel.h"
 #include "server.h"
 #include "control.h"
+#include "dynloader.h"
 #include "sysdep_decls.h"
 #include "support.h"
 #include "config.h"
 #include "msgbase.h"
+#include "citserver.h"
 #include "tools.h"
 #include "room_ops.h"
 
+#ifndef HAVE_SNPRINTF
+#include "snprintf.h"
+#endif
+
 struct CitControl CitControl;
 struct config config;
 FILE *control_fp = NULL;
@@ -126,22 +147,13 @@ long get_new_room_number(void) {
  * Get or set global configuration options
  */
 void cmd_conf(char *argbuf) {
-       char cmd[256];
-       char buf[256];
+       char cmd[SIZ];
+       char buf[SIZ];
        int a;
        char *confptr;
-       char confname[256];
-
-       if (!(CC->logged_in)) {
-               cprintf("%d Not logged in.\n",ERROR+NOT_LOGGED_IN);
-               return;
-               }
+       char confname[SIZ];
 
-       if (CC->usersupp.axlevel < 6) {
-               cprintf("%d Higher access required.\n",
-                       ERROR+HIGHER_ACCESS_REQUIRED);
-               return;
-               }
+       if (CtdlAccessCheck(ac_aide)) return;
 
        extract(cmd, argbuf, 0);
        if (!strcasecmp(cmd, "GET")) {
@@ -166,7 +178,7 @@ void cmd_conf(char *argbuf) {
                cprintf("%d\n", config.c_roompurge);
                cprintf("%s\n", config.c_logpages);
                cprintf("%d\n", config.c_createax);
-               cprintf("%d\n", config.c_maxmsglen);
+               cprintf("%ld\n", config.c_maxmsglen);
                cprintf("%d\n", config.c_min_workers);
                cprintf("%d\n", config.c_max_workers);
                cprintf("%d\n", config.c_pop3_port);
@@ -174,6 +186,7 @@ void cmd_conf(char *argbuf) {
                cprintf("%d\n", config.c_default_filter);
                cprintf("%d\n", config.c_aide_zap);
                cprintf("%d\n", config.c_imap_port);
+               cprintf("%d\n", config.c_net_freq);
                cprintf("000\n");
                }
 
@@ -265,6 +278,8 @@ void cmd_conf(char *argbuf) {
                                break;
                        case 27: config.c_imap_port = atoi(buf);
                                break;
+                       case 28: config.c_net_freq = atol(buf);
+                               break;
                        }
                    ++a;
                    }
@@ -275,7 +290,7 @@ void cmd_conf(char *argbuf) {
                aide_message(buf);
 
                if (strlen(config.c_logpages) > 0)
-                       create_room(config.c_logpages, 3, "", 0);
+                       create_room(config.c_logpages, 3, "", 0, 1);
                }
 
        else if (!strcasecmp(cmd, "GETSYS")) {