Implemented configuration settings for journaling.
[citadel.git] / citadel / control.c
index bad2a68d3ab893c4765d66f77af0072fe5df6fd6..6704c3edcbb91e91e32d9ef1550cac39936cee08 100644 (file)
@@ -5,10 +5,6 @@
  *
  */
 
-#ifdef DLL_EXPORT
-#define IN_LIBCIT
-#endif
-
 #include "sysdep.h"
 #include <stdlib.h>
 #include <unistd.h>
@@ -65,10 +61,10 @@ void get_control(void)
        memset(&CitControl, 0, sizeof(struct CitControl));
        if (control_fp == NULL) {
                control_fp = fopen(
-#ifndef HAVE_RUN_DIR
+#ifndef HAVE_DATA_DIR
                                                   "."
 #else
-                                                  RUN_DIR
+                                                  DATA_DIR
 #endif
                                                   "/citadel.control", "rb+");
                if (control_fp != NULL) {
@@ -77,10 +73,10 @@ void get_control(void)
        }
        if (control_fp == NULL) {
                control_fp = fopen(
-#ifndef HAVE_RUN_DIR
+#ifndef HAVE_DATA_DIR
                                                   "."
 #else
-                                                  RUN_DIR
+                                                  DATA_DIR
 #endif
                                                   "/citadel.control", "wb+");
                if (control_fp != NULL) {
@@ -121,12 +117,13 @@ void put_control(void)
  */
 long get_new_message_number(void)
 {
+       long retval = 0L;
        begin_critical_section(S_CONTROL);
        get_control();
-       ++CitControl.MMhighest;
+       retval = ++CitControl.MMhighest;
        put_control();
        end_critical_section(S_CONTROL);
-       return (CitControl.MMhighest);
+       return(retval);
 }
 
 
@@ -135,12 +132,13 @@ long get_new_message_number(void)
  */
 long get_new_user_number(void)
 {
+       long retval = 0L;
        begin_critical_section(S_CONTROL);
        get_control();
-       ++CitControl.MMnextuser;
+       retval = ++CitControl.MMnextuser;
        put_control();
        end_critical_section(S_CONTROL);
-       return (CitControl.MMnextuser);
+       return(retval);
 }
 
 
@@ -150,12 +148,13 @@ long get_new_user_number(void)
  */
 long get_new_room_number(void)
 {
+       long retval = 0L;
        begin_critical_section(S_CONTROL);
        get_control();
-       ++CitControl.MMnextroom;
+       retval = ++CitControl.MMnextroom;
        put_control();
        end_critical_section(S_CONTROL);
-       return (CitControl.MMnextroom);
+       return(retval);
 }
 
 
@@ -228,6 +227,11 @@ void cmd_conf(char *argbuf)
                cprintf("%d\n", config.c_smtps_port);
                cprintf("%d\n", config.c_enable_fulltext);
                cprintf("%d\n", config.c_auto_cull);
+               cprintf("%d\n", config.c_instant_expunge);
+               cprintf("%d\n", config.c_allow_spoofing);
+               cprintf("%d\n", config.c_journal_email);
+               cprintf("%d\n", config.c_journal_pubmsgs);
+               cprintf("%s\n", config.c_journal_dest);
                cprintf("000\n");
        }
 
@@ -408,12 +412,27 @@ void cmd_conf(char *argbuf)
                        case 43:
                                config.c_auto_cull = atoi(buf);
                                break;
+                       case 44:
+                               config.c_instant_expunge = atoi(buf);
+                               break;
+                       case 45:
+                               config.c_allow_spoofing = atoi(buf);
+                               break;
+                       case 46:
+                               config.c_journal_email = atoi(buf);
+                               break;
+                       case 47:
+                               config.c_journal_pubmsgs = atoi(buf);
+                               break;
+                       case 48:
+                               safestrncpy(config.c_journal_dest, buf,
+                                               sizeof config.c_journal_dest);
                        }
                        ++a;
                }
                put_config();
                snprintf(buf, sizeof buf,
-                        "Global system configuration edited by %s\n",
+                        "The global system configuration has been edited by %s.\n",
                         CC->curr_user);
                aide_message(buf);