]> code.citadel.org Git - citadel.git/blobdiff - citadel/control.c
Added a global system config item for the default time
[citadel.git] / citadel / control.c
index 83a6c576daafe474b62fac4a7320dfbe1f4e8135..68bbd51c77f8178bb4f26a36cdc89fc88aab03dc 100644 (file)
@@ -60,25 +60,13 @@ void get_control(void)
         */
        memset(&CitControl, 0, sizeof(struct CitControl));
        if (control_fp == NULL) {
-               control_fp = fopen(
-#ifndef HAVE_RUN_DIR
-                                                  "."
-#else
-                                                  RUN_DIR
-#endif
-                                                  "/citadel.control", "rb+");
+               control_fp = fopen(file_citadel_control, "rb+");
                if (control_fp != NULL) {
                        fchown(fileno(control_fp), config.c_ctdluid, -1);
                }
        }
        if (control_fp == NULL) {
-               control_fp = fopen(
-#ifndef HAVE_RUN_DIR
-                                                  "."
-#else
-                                                  RUN_DIR
-#endif
-                                                  "/citadel.control", "wb+");
+               control_fp = fopen(file_citadel_control, "wb+");
                if (control_fp != NULL) {
                        fchown(fileno(control_fp), config.c_ctdluid, -1);
                        memset(&CitControl, 0, sizeof(struct CitControl));
@@ -88,8 +76,9 @@ void get_control(void)
                }
        }
        if (control_fp == NULL) {
-               lprintf(CTDL_ALERT, "ERROR opening citadel.control: %s\n",
-                       strerror(errno));
+               lprintf(CTDL_ALERT, "ERROR opening %s: %s\n",
+                               file_citadel_control,
+                               strerror(errno));
                return;
        }
 
@@ -117,12 +106,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);
 }
 
 
@@ -131,12 +121,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);
 }
 
 
@@ -146,12 +137,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);
 }
 
 
@@ -226,6 +218,10 @@ void cmd_conf(char *argbuf)
                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("%s\n", config.c_default_cal_zone);
                cprintf("000\n");
        }
 
@@ -412,12 +408,24 @@ void cmd_conf(char *argbuf)
                        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);
+                       case 49:
+                               safestrncpy(config.c_default_cal_zone, buf,
+                                               sizeof config.c_default_cal_zone);
                        }
                        ++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);
 
@@ -427,7 +435,7 @@ void cmd_conf(char *argbuf)
                /* If full text indexing has been disabled, invalidate the
                 * index so it doesn't try to use it later.
                 */
-               if (!config.c_enable_fulltext == 0) {
+               if (config.c_enable_fulltext == 0) {
                        CitControl.fulltext_wordbreaker = 0;
                        put_control();
                }