]> code.citadel.org Git - citadel.git/blobdiff - citadel/control.c
* Added "instant expunge" and "allow spoofing" site config options.
[citadel.git] / citadel / control.c
index d018f2743b41cb7c4efb4e8c5c92a98c083d92ad..bbf3bf6ef8310b8f23b0d27b031c9765bbe34b16 100644 (file)
@@ -64,13 +64,25 @@ void get_control(void)
         */
        memset(&CitControl, 0, sizeof(struct CitControl));
        if (control_fp == NULL) {
-               control_fp = fopen("citadel.control", "rb+");
+               control_fp = fopen(
+#ifndef HAVE_RUN_DIR
+                                                  "."
+#else
+                                                  RUN_DIR
+#endif
+                                                  "/citadel.control", "rb+");
                if (control_fp != NULL) {
                        fchown(fileno(control_fp), config.c_ctdluid, -1);
                }
        }
        if (control_fp == NULL) {
-               control_fp = fopen("citadel.control", "wb+");
+               control_fp = fopen(
+#ifndef HAVE_RUN_DIR
+                                                  "."
+#else
+                                                  RUN_DIR
+#endif
+                                                  "/citadel.control", "wb+");
                if (control_fp != NULL) {
                        fchown(fileno(control_fp), config.c_ctdluid, -1);
                        memset(&CitControl, 0, sizeof(struct CitControl));
@@ -194,7 +206,7 @@ void cmd_conf(char *argbuf)
                cprintf("%d\n", config.c_imap_port);
                cprintf("%ld\n", config.c_net_freq);
                cprintf("%d\n", config.c_disable_newu);
-               cprintf("1\n"); /* no longer in use */
+               cprintf("1\n"); /* niu */
                cprintf("%d\n", config.c_purge_hour);
 #ifdef HAVE_LDAP
                cprintf("%s\n", config.c_ldap_host);
@@ -214,6 +226,10 @@ void cmd_conf(char *argbuf)
                cprintf("%d\n", config.c_imaps_port);
                cprintf("%d\n", config.c_pop3s_port);
                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("000\n");
        }
 
@@ -344,7 +360,7 @@ void cmd_conf(char *argbuf)
                                        config.c_disable_newu = 1;
                                break;
                        case 30:
-                               /* no longer in use */
+                               /* niu */
                                break;
                        case 31:
                                if ((config.c_purge_hour >= 0)
@@ -388,6 +404,18 @@ void cmd_conf(char *argbuf)
                        case 41:
                                config.c_smtps_port = atoi(buf);
                                break;
+                       case 42:
+                               config.c_enable_fulltext = atoi(buf);
+                               break;
+                       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;
                        }
                        ++a;
                }
@@ -399,6 +427,14 @@ void cmd_conf(char *argbuf)
 
                if (strlen(config.c_logpages) > 0)
                        create_room(config.c_logpages, 3, "", 0, 1, 1, VIEW_BBS);
+
+               /* 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) {
+                       CitControl.fulltext_wordbreaker = 0;
+                       put_control();
+               }
        }
 
        else if (!strcasecmp(cmd, "GETSYS")) {